Access to Plug.Conn in a processing pipeline

Hi! I'm trying to find a way of modifying http response returned by Absinthe Plug depending on results of a query (mutation) execution. For example, I want to put a new cookie into the response if mutation resolver has successfully returned some value (User model). I'm trying to build such workflow:

Login mutation resolver should return a User model;
Middleware function (which works after resolver) should found this model and add some additional data into a resolution context, for example – add user ID;
Custom phase handler added into a pipeline (for example, after Absinthe.Phase.Document.Result) should look for that additional data and (if found) – generate JWT token and put it into a response as a cookie.

In such case I don't mix transport level with the logic and all transport-related stuff encapsulated in a Pipeline Phase.
Is this workflow even possible? Now I have several issues:

I return modified Resolution (with custom data added into the context) from a field middleware function, but this data never appears in a context object of a Phase handler;
Phase handlers also don't have an access to a Plug.Conn instance, so I can't modify it.

Maybe there is another way of doing this and I'm doing something wrong. Please help.

Hey @h8, sorry for the long delay in the reply. I agree that it isn't super easy at the moment. My first thought was that you could create a wrapping plug, but the conn doesn't ever actually contain the response body so that won't work.
It may be that we need to add a before_send callback to Absinthe.Plug that passes in the conn, the graphql response, and maybe the whole blueprint.

Thanks for answer, @benwilson512! What do you think about ability of returning modified context of Resolution object in order to path some metadata from field middleware to, for example, before_send callback that you've mentioned? This could be allowed only for mutations.

I could consider passing in the entire blueprint, and then you could lookup the context from within it.

@benwilson512 @h8 Is there absinthe_plug changes needed here? Should we close this issue and/or come up with some concrete next steps?

I've been looking for something similar. Would love to have an exclusively GraphQL API, but also have the option to use sessions instead of tokens. Just need a way to affect the Plug.Conn from inside a login mutation.

Pulling an example from the PR docs, how does this look:
Before Send
If you need to set a value (like a cookie) on the connection after resolution
but before values are sent to the client, use the :before_send option:
plug Absinthe.Plug,
  schema: MyApp.Schema,
  before_send: {__MODULE__, :absinthe_before_send}

def absinthe_before_send(conn, %Absinthe.Blueprint{} = blueprint}) do
  auth_token = blueprint.execution.context[:auth_token]
  put_session(conn, :auth_token, auth_token)
end
def absinthe_before_send(conn, _) do
  conn
end

To get a current_user_id in the context you can just use middleware after your login mutation
resolve fn args, _ ->
  case authenticate(args) do
    {:ok, token} -> {:ok, %{token: token}}
    error -> error
  end
end
middleware fn resolution, _ ->
  with %{value: %{token: token}} <- resolution do
    Map.update!(resolution, :context, fn ctx ->
      Map.put(ctx, :auth_token, token)
    end)
  end
end)

Many thanks for this! When it will be in the release?

Later today, mostly wanted to make sure that it looked like this would work for everyone.

I was wondering if you use sessions (typically using cookies) to store the auth token like in the above example if you open yourself up to CSRF attacks on subsequent query/mutation POST requests?  If so how should it be mitigated?  It's simple enough to store a CSRF token in the page and submit it as a x-csrf-token header in the query/mutation for validation but not sure if it's required.  Also not sure exactly how to deal with token staleness/refresh/reuse issues if needed in multiple queries/mutations.

@tmepple let's direct "how to" style questions for the forum or slack please.


Is it possible to install a Chrome extension?

I really appreciate the plugin. In fact, I'd like to install the Chrome extension called "Language Reactor" for YouTube.

Hi! Sorry, but this functionality is not planned for Custom Frames.


Find a way to build the image or initrd from source in packages

To help linux distributions adoption the packages should be build from source.
The image in packaging scripts is generated first and then used as source file to build it.
We could try to find a way to create the image from source.
Some possible solutions are:
Kiwi suggested by @marcov
As alternative:

build the agent
copy files  for the guest rootfs from the host rootfs
An approach like clr-init could be used:
https://github.com/clearlinux/clr-init/blob/master/Makefile#L4

That approach could be used as a new osbuilder target:
to do something like ...
make make-rootfs DISTRO=host
arch=lib64
BINFILES=(/usr/bin/iptables ...)
mkdir -p rootfs/{sys,dev,proc,tmp,var,sysroot,usr/sbin,usr/bin,usr/lib/systemd/system-generators,usr/${arch},usr/${arch}/multipath,run,root}

for file in ${BINFILES};
do
        cp -f $file initramfs/$file;
done
cp $(ldd ${BINFILES} | awk '{print $$3}' | grep "^/" | sort | uniq) rootfs/usr/${arch}/

Then when we create the image package:
source0: osbuilder.tar.gz
BuildRequires: iptables
...

%build
make make-rootfs DISTRO=host
make make-image DISTRO=host
make make-initrd DISTRO=host

@marcov @nitkon @jodh-intel @grahamwhaley

Using the host FS is an interesting idea but that would only work in limited scenarios I think. A few thoughts:

What if you want a rootfs that isn't the same as the host?
Package build env is going to potentially limited in different ways to the roots that Kata needs
(in other words, the package build environment may not have the packages installed that are needed by the rootfs)
etc

fwics, kiwi is https://doc.opensuse.org/projects/kiwi/doc/. That sounds really interesting but apparently currently only supports rpm-based distros. We could of course start moving to kiwi for those distros and either wait or adopt an alternative for deb-based distros.
I'd be surprised if Kata was the only project with "packaging challenges" like this. Does anyone know of any others (ideally with points to how they solve these issues :) ?
A random thought: we could consider not packaging the image but instead packaging a new tool (kata-ctl) that could download images and/or kernels from known secure locations. There are advantages to such a scheme - users would have access to more frequently updated images/kernels than packaging would allow (unless maybe we could leverage the RPM spec magic of https://github.com/clearlinux/autospec :) However, there are the obvious set of issues:

security
re-inventing the wheel (or should that be re-inventing hub.docker.com?! :)

But building on this random thought - maybe we could package up a set of kernels + images as docker images and use the standard docker tooling to docker pull the latest. We'd then only need a way to extract those images to the standard locations to avoid having to package image+kernels "manually" :)

See also:

http://lists.katacontainers.io/pipermail/kata-dev/2018-October/000505.html

I like the distribution model proposed by @jodh-intel based on the concept of image pulling.
This would also help in distributing images with different security levels, a problem that has been discussed recently.
kata-ctl could be used to pull a specific image and to update configuration.toml.
An offspring of @jodh-intel and @jcvenegas propositions is already achievable with docker export; i.e. start a container, install the packages, and then export the rootfs.
Or if you dont want to rely on Docker, there are also standalone tools used to manipulate container images, as skopeo (to pull images) and umoci (can unpack images and modify them).
E.g.:
skopeo copy docker://opensuse:leap oci:opensuse:leap
sudo umoci unpack --image oci:opensuse:leap bundle

And you have the rootfs available in bundle/rootfs

So for kata-ctl the idea would be just pull the rootfs and build the image and initrd in the host right?

This would need to publish the rootfs that is the Base OS + agent + required binaries by the agent (iptables etc) ?
This would need a documented way to do kata-ctl image update after each kata containers update

Also I think in that way we need a better way to handle the image compatibility and the runtime. In the past was still needed but the image was build and provided before the users needed to use kata. Now this logic will be part user side. If we want to go in this way we should ask in the ML and bring it to the Kata arch forum.

@jcvenegas - all good points! I've added this as an agenda item for the next Architecture Committee meeting:

https://etherpad.openstack.org/p/katacontainers-2018-architecture-committee-mtgs

added comments to ML.
To summarice we are using kiwi for OBS packages as it works for our OBS plans and helps to integrate kata in SUSE, for new Distros adoptions we may need to find a more generic approach (or specific to the adopter).
@lsm5 I added you to the ML thread. I'd like to get some feedback from you :) .


Consider Orgdown / Org-Mode as Markdown alternative

Most of the syntax extensions that seem foreign in markdown could be natively supported in org: https://orgmode.org/manual/Blocks.html#Blocks
See a motivational post at https://karl-voit.at/2017/09/23/orgmode-as-markup-only/
More material later if needed :)

If I am understand correctly something like this:
::::tabs{id="my-tabs"}

:::tab{title="Hi"}

A Tab

:::

::::

you look like this in org-mode:
#+BEGIN_TABS :id my-tabs

#+BEGIN_TAB :title Hi

A Tab

#+END_TAB

#+END_TABS

The question is not whether the extended syntax does look foreign to Markdown, it is rather if the extended syntax is easily readable by a non-it person. Since one major target group of mine are teachers. I like that in the org mode syntax, the blocks end with context. In my extended markdown, you lose the context, which probably makes it harder to reason about.

I am also not sure how easy it would be to implement custom block in org-mode and what a good org-mode parser for JavaScript is. Currently, I am using remark with this plugin https://github.com/remarkjs/remark-directive, which also works with React components, which makes it super-easy to develop with.

yes, the ecosystem for orgdown/org-mode is still a bit young outside of emacs, but I think it is worth promoting because org has standards and integrations which provide a lot of flexibility - and as outlined in the article, it is more consistent and easy to write than markdown in its simplest form.
Here is a list of tool support: https://gitlab.com/publicvoit/orgdown/-/blob/master/doc/Tool-Support.org

I am also looking for ways to enable non tech-savvy people to use hyperbook. Currently gitpod.io or VS Codium with the extension is probably the best. Hedgedoc does look nice though :)

I am also not sure how easy it would be to implement custom block in org-mode

In org-mode you can always add custom blocks and they will be foldable at least in editors, even if they might not know what to do with them:
https://orgmode.org/manual/Blocks.html
So just like with markdown, the actual implementation of the custom block would be in the converter.
Have you dropped this idea fully now?


First menu won't close when 2 menus are used

My website has 2 menus which open with jQuery.mmenu.  Both menus works fine with jQuery.mmenu-4.7.5.  However, when I upgrade to jQuery.mmenu-5.5.2, the first menu (the one that calls mmenu() first in the ready function) no-longer closes when I click on the page overlay.  Here is my ready function:
jQuery(document).ready(function($) {

	$("#main-mmenu").mmenu({
		// options
		extensions: [ "theme-dark" ],
		offCanvas: { position: "left" },
	}, {
		// configuration
		clone: true
	});

	$("#language-mmenu").mmenu({
		// options
		extensions: [ "theme-dark" ],
		offCanvas: { position: "right" }
	}, {
		// configuration
		clone: true
	});
});

I have included all the appropriate CSS and JS files.  This appears to be a regression.

That's odd, I'll see if I can reproduce this issue and let you know.

I don't have an online example, unfortunately, because it's currently an internal site until it goes live.  But I have narrowed the version down to version 5.0 of jQuery.mmenu.  In version 5.0.0, neither the right nor the left menu will close when I click on the page overlay.  In version 5.0.4, the the first (left) menu (the one that calls mmenu() first in the ready function) doesn't close when I click on the page overlay, but the second (right) menu does close when I click the page overlay.  So it's something that apparently changed between versions 4.7.5 and 5.0.0.

I have attached an HTML file that reproduces the problem quite easily.  Just add "jquery-1.7.js" to the same directory and the "jQuery.mmenu-5.5.2" package as a sub-directory.  Then click "index.html" to view in your browser, and try the left and the right menu.  The left one won't close.
index.html.txt

I have created a file to reproduce this problem easily.  Just save the attached file to a directory on your hard disk and rename it to "index.html".  Then download a copy of "jquery-1.7.js" to the same directory, and extract a copy of jQuery.mmenu 5.5.2 to the subdirectory "jQuery.mmenu-5.5.2".  Now open "index.html" in a browser and click the link to open the left menu.  If you try to close it by clicking the overlay, it won't close.  You'll have to reload the page.  However, if you open the right menu, you can close it by clicking the overlay.
index.html.txt
Note:  I have a full ZIP package for this, but GitHub won't let me attach a ZIP file.

Thank you for the demo file.
I found It has something to do with the clone config option set to true on the first menu, setting it to true in the second menu makes no difference.
I'll investigate why and see if I can fix this in the next version.

As it turned out, the clone config option prevented the API from being exposed to the DOM element (it actually got exposed to the original DOM element, not the clone), preventing the script in another menu from being able to close it.
I've fixed the issue and will publish a new version some time soon.
For now, I guess you can manually clone the menu(s) before firing the plugin, a short description of how to do so can be found here: http://mmenu.frebsite.nl/support/tips-and-tricks.html

Thank you for the quick reply!  For now, I will continue to use version 4.7.5 until you release the fix.  I prefer the way you implement clone because you add the "mm-" prefix to all ID's.  I eagerly await the fix because there are some features in the 5.x version I'd like to use.  Thanks for an excellent menu system (and great documentation to go along with it)!


German characters

Hey,
I noticed that german characters äöü ß ... making problems.
I had to change these to get it working.
Maybe you could take a look on it :)

I am quite certain that my script uses utf-8 during the processing. My guess is, that your note.txt file was encoded with some proprietary windows iso format. I had to manually re encode parts of my database because of this issue. So far i have not found a way to load iso encoded files without creating some sort of conversion problems.
Could you check that?

What exactly should I check? :)

You can try the first solution of this post to get the encoding of your note.txt file before (!) applying ultrastar-pitch. Alternatively you can send me your project files via<EMAIL_ADDRESS>Did you use the newest UltraStar-Creator version to create your base file? If it still outputs non utf-8 encoded files, then I have to find a way to deal with that.

Okay seems like that my file was in ANSI. I used Ultrastar creator 1.2 which should be the latest one as I know. Maybe because I opened the txt file with an old version of Yass I dont know.
But well when Im creating a song again I will take an eye on it.
If I ensure that the file is in UTF-8 than ultrastar-pitch should have no problems with german characters right?

Yes, exactly, I ran multiple German songs without a problem so far. The software actually expects the file to come in UTF-8. I see if i can find an easy fix to support multiple encodings. Otherwise I'll put a note into the readme to "check the encoding before using the software".
Regardless, it would be quite interesting to know if either UC or Yass! was responsible for the ANSI encoding.

I uploaded the new windows binary. Aside supporting ansi I changed two more things:

ffmpeg was compiled manually only with necessary components -> smaller binary size
a custom tensorflow without avx was used -> older cpus are now able to run upitch as well


Make default value of Blob to null

Description:
Currently, the default value is 0 length byte array.
Steps to reproduce:
Affected Versions:
0.95.6

This issue is invalid. According to spec default value is blob is 0 length blob.Also, blob type will be replaced with byte type. Related to https://github.com/ballerina-platform/ballerina-lang/issues/8961 https://github.com/ballerina-platform/ballerina-lang/issues/8962


tests: #470 Call WSI surface functions on supported platforms.

Windows and Android are currently not supported by the EnableWsiBeforeUse test.
This was previously addressed with #ifdef's for the platform-specific code.
However, this means that the surface variable is VK_NULL_HANDLE for the
unsupported platforms, which is causing problems with Windows debug builds, run
from VisualStudio.  This should ensure those functions aren't called on Windows
and Android.

This short-term work-around doesn't fix the problem.  Per discussion in the issue #470, I'm going to fix this correctly.


Local pull request success status testing

Docs Build status updates of commit 1e2447c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

E2E_DocsBranch_Dynamic/index.md
:white_check_mark:Succeeded
View

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


Add scripts to TOML file

As a user, I want to call the log keeper from command line, so that I do not need to type a lengthy "python -m ..." script
Dev notes:

Add a [python.scripts] part to the pyproject.toml file e.g.

[project.scripts]
update-log-keeper = "log_keeper.main"

This could link #12 where the script could run then pause for an input if entered through CLI


[Improvement] Add expensify.cash to iOS and Android native share menus

If you haven’t already, check out our contributing guidelines for onboarding!

Platform - version:
iOS, Android - All versions
Problem
A common action when using a mobile device is to share something (a web page, an image, a tweet, etc) with another person. Both iOS and Android have a native "share" button that allows you to share things via apps that you have installed on your phone.
Here's an example of what the native iOS share menu looks like:

Why is this important?
The native share function is a common flow and one of the easier ways to share something with someone. For example, I find it to be easier than copying the url of a web page from my mobile browser, switching apps, and pasting it in to the messenger app. It's much easier to just hit the share button, choose the messenger app, and select who I want to send the url to.
Solution
Add support for sharing directly to our app. Here is an example react native library that helps with this, though I haven't done any research into it. I think the way we would implement it is:

Expensify.cash shows up as an option in the native share menu
When Expensify.cash is selected, we bring up your Expensify.cash home screen (Screenshot is below)
You can select a chat
Whatever you are sharing (url, image, etc) is sent to that chat

This is very similar to the flow when using the native share functionality with WhatsApp.
Screenshot of Expensify.cash home screen:

Upwork Job Link: https://www.upwork.com/jobs/~01fb534e5bfc655563

Is this task still available? I would like to work on this issue.

Is this task still available? I would like to work on this issue.

Hi @tugbadogan thanks for the interest! It is not available, but any available issues should be posted on Upwork.

Hi @tugbadogan thanks for the interest! It is not available, but any available issues should be posted on Upwork.

I evaluated several React Native libraries, but it looks like the real choice is only between two of them:

react-native-share-extension
react-native-share-menu

The former looks more popular, but requires manual install and haven't been updated in a while, which causes a lot of troubles and compatibility issues with latest React versions. So probably it's better to go with react-native-share-menu, like it was proposed in issue description.
I've tested the integration, it works more or less fine, but has one issue on iOS: https://github.com/meedan/react-native-share-menu/issues/82
My proposal is to create libs/ShareManager module, similar to ActiveClientManager or Notification.
Something like that:
libs/ShareManager/index.native.js
import ShareMenu from 'react-native-share-menu';

let listener;

function handleShare(item) {
    // Check the shared item, save it to Onyx
    // and redirect to chat chooser interface
}

function register() {
    ShareMenu.getInitialShare(handleShare);
    listener = ShareMenu.addNewShareListener(handleShare);
}

function unregister() {
    listener.remove();
}

export {
    register,
    unregister,
};

The code should go index.native.js, and nooped in index.js, because it will not work in web and desktop anyway.
Then we should register in componentDidMount of Expensify.js and unregister in componentWillUnmount.
Instead of showing the Home screen with a list of chats I suggest to create a separate screen for that.
If we will reuse Home screen, we would have to:

Hide user avatar, because when user taps on it, it will open the Settings screen and break the sharing flow
Change the onTap callback for chats in the list, because instead of just opening the chat, first we would need to post a message.

With all these new conditions, checks (and the fact that sharing should work only on mobile) Home screen and Sidebar can become too heavy. So maybe it's better to create a separate SharingScreen and reuse sidebar components or even whole SidebarView there.

I evaluated several React Native libraries, but it looks like the real choice is only between two of them:

react-native-share-extension
react-native-share-menu

The former looks more popular, but requires manual install and haven't been updated in a while, which causes a lot of troubles and compatibility issues with latest React versions. So probably it's better to go with react-native-share-menu, like it was proposed in issue description.
I've tested the integration, it works more or less fine, but has one issue on iOS: https://github.com/meedan/react-native-share-menu/issues/82
My proposal is to create libs/ShareManager module, similar to ActiveClientManager or Notification.
Something like that:
libs/ShareManager/index.native.js
import ShareMenu from 'react-native-share-menu';

let listener;

function handleShare(item) {
    // Check the shared item, save it to Onyx
    // and redirect to chat chooser interface
}

function register() {
    ShareMenu.getInitialShare(handleShare);
    listener = ShareMenu.addNewShareListener(handleShare);
}

function unregister() {
    listener.remove();
}

export {
    register,
    unregister,
};

The code should go index.native.js, and nooped in index.js, because it will not work in web and desktop anyway.
Then we should register in componentDidMount of Expensify.js and unregister in componentWillUnmount.
Instead of showing the Home screen with a list of chats I suggest to create a separate screen for that.
If we will reuse Home screen, we would have to:

Hide user avatar, because when user taps on it, it will open the Settings screen and break the sharing flow
Change the onTap callback for chats in the list, because instead of just opening the chat, first we would need to post a message.

With all these new conditions, checks (and the fact that sharing should work only on mobile) Home screen and Sidebar can become too heavy. So maybe it's better to create a separate SharingScreen and reuse sidebar components or even whole SidebarView there.

@r8 Thanks for the proposal, plan sounds good 👍
I agree with you that we should create a separate SharePage that reuses sidebar components.

@r8 Thanks for the proposal, plan sounds good 👍
I agree with you that we should create a separate SharePage that reuses sidebar components.

it looks like no one is assigned to work on this job.
Please double the price or add a comment stating why the job isn't being doubled.


transparent_background not respected on nvim open

After updating Catppuccin this morning, my config of transparent_background = true no longer takes effect when I open neovim. However, If I run :Catppuccin [any flavor], the setting is picked up and I get a transparent background. Running :CatppuccinClean/:CatppuccinCompile does not work either, only manually setting a flavor seems to pick up the setting
My config:
lua/ag/plugin-conf/catppuccin.lua
local catp = require("catppuccin")

vim.g.catppuccin_flavour = "mocha"
catp.setup({
    transparent_background = true,
    term_colors = true,
    compile = {
        enabled = true,
        path = vim.fn.stdpath("cache") .. "/catppuccin",
    },
    styles = {
        comments = { "italic" },
        strings = { "italic" },
    },
    integrations = {
        gitsigns = true,
        telescope = true,
        treesitter = true,
        cmp = true,
        nvimtree = {
            enabled = true,
            show_root = false,
        },
        dap = {
            enabled = true,
            enable_ui = true,
        },
        native_lsp = {
            enabled = true,
        },
        ts_rainbow = true,
        indent_blankline = {
            enabled = true,
            colored_indent_levels = false,
        },
    },
})

lua/ag/plugins.lua
-- Bootstrap packer if necessary
local install_path = vim.fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
local packer_bootstrap = false

if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
    packer_bootstrap = vim.fn.system({ "git", "clone", "https://github.com/wbthomason/packer.nvim", install_path })
end

-- Init setup
vim.cmd("packadd packer.nvim") -- load packer
local packer = require("packer")

packer.startup(function(use)

    use({
        "catppuccin/nvim",
        as = "catppuccin",
        branch = "main",
        config = function() require("ag.plugin-conf.catppuccin") end,
        run = ":CatppuccinCompile",
    })
)

output of nvim --version
NVIM v0.8.0-dev+2054-g5c3bbb67e
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by agarcia@MacBook-Pro

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/opt/homebrew/Cellar/neovim/HEAD-5c3bbb6/share/nvim"

Run :checkhealth for more info

I think you missed vim.cmd [[colorscheme catppuccin]] at the end of your config?

Ah sorry, forgot to include that in my config. I do have that in my init.lua
vim.opt.termguicolors = true
vim.opt.background = "dark"
vim.cmd("colorscheme catppuccin")

@garcia5 Can you push an update to your nvim config so I can test?

Your config works fine for me

Not sure what went wrong on your side?

Hm that's very weird, I just tried with a minimal config and am still getting the same issue
/tmp/minimal.lua
-- /tmp/minimal.lua
-- Init setup
vim.cmd("packadd packer.nvim") -- load packer
local packer = require("packer")

packer.startup(function(use)
    use({
        "catppuccin/nvim", -- another another lua colorscheme
        as = "catppuccin",
        branch = "main",
        config = function ()
            require('catppuccin').setup({
                transparent_background = true,
            })
        end,
        run = ":CatppuccinCompile",
    })
end)

vim.cmd("colorscheme catppuccin")

nvim -nu /tmp/minimal.lua

:CatppuccinStatus

:Catppuccin mocha

@garcia5 did you try to re-compile? Also, which branch are you on?

Why is the compile status said all failed?

@garcia5 did you try to re-compile? Also, which branch are you on?

In the minimal config I don't have compile enabled. On my normal one though the compile status looks okay
:CatppuccinStatus on my normal config
[✓]: latte      /Users/agarcia/.cache/nvim/catppuccin/latte_compiled.lua
[✓]: frappe     /Users/agarcia/.cache/nvim/catppuccin/frappe_compiled.lua
[✓]: macchiato  /Users/agarcia/.cache/nvim/catppuccin/macchiato_compiled.lua
[✓]: mocha      /Users/agarcia/.cache/nvim/catppuccin/mocha_compiled.lua

@garcia5 Can you open /Users/agarcia/.cache/nvim/catppuccin/mocha_compiled.lua and search for "Normal"
What is the content of the line?

Similar to @nullchilly, the transparent background does work on my end too:

@garcia5 Can you open /Users/agarcia/.cache/nvim/catppuccin/mocha_compiled.lua and search for "Normal"
What is the content of the line? is bg = nil?

I have vim.api.nvim_set_hl(0, "Normal", { bg = "NONE", fg = "#CDD6F4" })
There are also a few other "Normal" hl groups being set, and not all of them have bg = "NONE"
vim.api.nvim_set_hl(0, "NormalNC", { bg = "NONE", fg = "#CDD6F4" })
vim.api.nvim_set_hl(0, "NormalSB", { bg = "#11111B", fg = "#CDD6F4" })
vim.api.nvim_set_hl(0, "NormalFloat", { bg = "#181825", fg = "#CDD6F4" })
vim.api.nvim_set_hl(0, "Normal", { bg = "NONE", fg = "#CDD6F4" })

Yeah bg = "NONE" on Normal is enough for transparency

@garcia5 do you mind sharing your nvim conf?

Yeah your updated config would help since it could be the config loading order. Loading order can be undefined which leads to "But it works on my side"

https://github.com/garcia5/dotfiles/tree/master/files/nvim
Thanks for helping so much on this btw! Love the colorscheme

I am able to reproduce your error now :D

:verbose hi Normal outputs
Normal         xxx guifg=#cad3f5 guibg=#24273a
        Last set from Lua

that guibg is coming from the macchiato base, even though my flavor should be 'mocha'

So if I add a catp.load() call at the end of my catppuccin.lua config file it works? I used to have it there but then I thought there was a change recently to remove the need for it
-- lua/ag/plugin-conf/catppuccin.lua
local catp = require("catppuccin")

vim.g.catppuccin_flavour = "mocha"
catp.setup({
    transparent_background = true,
    term_colors = true,
    compile = {
        enabled = true,
        path = vim.fn.stdpath("cache") .. "/catppuccin",
    },
    styles = {
        comments = { "italic" },
        strings = { "italic" },
    },
    integrations = {
        gitsigns = true,
        telescope = true,
        treesitter = true,
        cmp = true,
        nvimtree = {
            enabled = true,
            show_root = false,
        },
        dap = {
            enabled = true,
            enable_ui = true,
        },
        native_lsp = {
            enabled = true,
        },
        ts_rainbow = true,
        indent_blankline = {
            enabled = true,
            colored_indent_levels = false,
        },
    },
})
catp.load() -- NOW CONFIG LOADS AS EXPECTED

@garcia5 If you call colorscheme catppuccin it will doautocmd ColorschemePre then execute https://github.com/catppuccin/nvim/blob/main/colors/catppuccin.lua then doautocmd ColorScheme
I am still unable to locate the error in your config tho, the colorscheme on my end is correcly set to mocha but transparent doesn't work...

Ok nevermind, I go inside lua/ag/plugin-conf/catppuccin.lua did a source | CatppuccinCompile and transparency works now

I think I got it
Add the enable_reload_compiled for it to work first try
require("packer").init {
	auto_reload_compiled = true
}

Refer to: https://github.com/catppuccin/nvim#auto-compile

I think this might be something about how packer handles loading my config. If I move the config inline, I get transparency. With my config being required in another file, I have to manually call catp.load() or vim.cmd("colorscheme catppuccin") from my config
packer.setup(function(use)
    use({
        "catppuccin/nvim", -- another another lua colorscheme
        as = "catppuccin",
        branch = "main",
        config = function()
            -- this works!
            local catp = require("catppuccin")

            vim.g.catppuccin_flavour = "mocha"
            catp.setup({
                transparent_background = true,
                term_colors = true,
                compile = {
                    enabled = true,
                    path = vim.fn.stdpath("cache") .. "/catppuccin",
                },
                styles = {
                    comments = { "italic" },
                    strings = { "italic" },
                },
                integrations = {
                    gitsigns = true,
                    telescope = true,
                    treesitter = true,
                    cmp = true,
                    nvimtree = {
                        enabled = true,
                        show_root = false,
                    },
                    dap = {
                        enabled = true,
                        enable_ui = true,
                    },
                    native_lsp = {
                        enabled = true,
                    },
                    ts_rainbow = true,
                    indent_blankline = {
                        enabled = true,
                        colored_indent_levels = false,
                    },
                },
            })
        end,
        run = ":CatppuccinCompile",
    })
end)

Which is exactly the reason you need auto_reload_compiled

There we go, the auto_reload_compiled did it! Thanks so much

Thanks you for your time!

All this effort just to see a little bit of my wallpaper while I code 🤦

I use LazyVim, sometimes ok,sometimes not, it was a tad confusing...


Fix ETag handling for Binaries and Binary descriptions

Resolves: https://jira.duraspace.org/browse/FCREPO-1983
Resolves: https://jira.duraspace.org/browse/FCREPO-1754
This is an alternate resolution of this issue. See https://github.com/fcrepo4/fcrepo4/pull/1022 for a different approach.
The advantage of this PR (from my perspective) is that ETag and last-mod values on the fedora:Binary and associated description are decoupled.
See: http://irclogs.fcrepo.org/2016-04-18.html for further discussion of this.

Note: this PR also addresses the Strong/Weak ETag issue: Binaries produce strong ETags, everything else produces a weak ETag.

To be clear, this current PR bases the:

etag and last-mod for NonRdfSources on the Description, and
etag and last-mod for Descriptions on the NonRdfSources.

A brief rationale would be helpful here.

@awoods I agree a rationale would be helpful here. Would you like that as an inline comment or written here in the github comments? In brief, though, it follows from the principle of the binary being the subject of the triples in the description.

@awoods as a side note, this is exactly why we need a specification. It is impossible to fix incorrect behavior if there is no clear document describing what correct behavior is.

Maybe an inline comment would help folks who look at the code in the future understand what is going on.

Six kinds of amen.
On Monday, April 18, 2016, Aaron Coburn<EMAIL_ADDRESS>wrote:

@awoods https://github.com/awoods as a side note, this is exactly why
we need a specification. It is impossible to fix incorrect behavior if
there is no clear document describing what correct behavior is.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/fcrepo4/fcrepo4/pull/1024#issuecomment-211639522

To be clear, my comment was in support of @acoburn's remark about specification.

@acoburn:  I pulled your fix into my fork, compiled, and tested in the web UI again the case I documented in FCREPO-1983.  That problem appears to be fixed.

@sprater thanks for checking! I would like to add some additional integration tests before this is actually merged. If that happens next week (before the 4.5.1 release), I'll close this PR and re-target it at the DEV branch; otherwise, it will stay where it is. In any case, this ticket is certainly moving forward.

@acoburn sounds good.  I'll wait for the merge when it occurs, then test again, just to make sure.

Superseded by #1028


Add Freezed To json method

currently to json method is getting error when building with freezed

The README states that only parsing is supported right now, converting to JSON is not supported at the moment.

Let's continue this discussion on #11


Feeding the javascript player with a h264 hardware encoded file

Hi again,
I'm open . So, I have the following server based on Nvidia APIs which do the following:

it captures a context render buffer on gpu
Encodes that using hardware acceleration
finally produce a .h264 file

I'm curious in how can I use your Server to serve that streaming to playerback on Javascript player, since maybe I will have to eliminate the Encoder to not reencoder the file and so adding latency to the process.

The core of Media Encoder is ffmpeg .
So if your server's output stream could be read by ffmpeg ,
then Media Encoder should be able to send it to Media Server .
You may refer to official doc (http://ffmpeg.org/ffmpeg-protocols.html) to find a solution for your server.
Actually you can send streams to Media Server with ffmpeg directly.
Media Encoder is just like a GUI front-end of ffmpeg .

I do not recommend that you bypass ffmpeg.
Because the javascript player decodes h.264 data with library broadway.js .
And broadway.js expects a restricted h.264 format.
(see https://github.com/mbebenita/Broadway#encoding-video)

So I'm trying here with my ffmpeg the following (Sorry I started early work with ffmpeg):
ffmpeg -re -i "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA Capture SDK\datasets\CUDADecode\teste\test-720p.h264" -s 1280x720 -r 20 -b:v 1280k -an -vcodec libx264 -tune zerolatency -pass 1 -coder 0 -bf 0 -flags -loop -wpredp 0 -pix_fmt yuv420p -g 50 -threads 1 -f h264 http://<IP_ADDRESS>:9310/desktop/h264/1280x720x20@1280kbps
The Media Server gets the ffmpeg command, but I see nothing in the browser.  The client count in  Media Server is 0.
I attached the .h264 which is produced by the Nvidia API.
h264.zip

I already fixed that. It was missing desktop-4800
ffmpeg -re -i "C:\Program Files (x86)\NVIDIA Corporation\NVIDIA Capture SDK\datasets\CUDADecode\teste\test-720p.h264" -s 800x600 -r 30 -b:v 1280k -an -vcodec libx264 -tune zerolatency -pass 1 -coder 0 -bf 0 -flags -loop -wpredp 0 -pix_fmt yuv420p -g 80 -threads 1 -f h264 http://<IP_ADDRESS>:9310/desktop,desktop-48000,desktop-44100/h264/800x600x20@1280kbps

Well done man!
But the last path segment of the URL is still not 100% correct.
The parameters  "-s 800x600 -r 30 -b:v 1280k" should match "800x600x30@1280kbps" .


Acceleration Structures Update

Check it out! I implemented the (Ac/De)celeration structure updates! One of the last features that is missing in Daxa RT.
Have a great day.

There are no bools in C. Please replace this with daxa_Bool8 and 0 instead of false

This should just be fixed in the .h header. The C++ may still use bools

Done and tested


Add RoboCup Configuration Tool

We were after a tool that makes things easy before a RoboCup game to set the wifi network and anything else.
Last year we had issues with the robot position not being set (eg Kevin thinking he was a  goalie and diving everywhere) and the robot set to wrong field (although we were mostly saved by @TrentHouliston here). We also didn't take advantage of the robocup service, and we probably left our robots connected to a field network when they shouldn't have been.
A lot of this is because people aren't aware of what needs to be done (robocup service was unknown) or how to do the things (how to configure networks???), and also stress.
So this tool is an ncurses interface that shows you at a glance what your setup is for network and some game config so you can easily see if anything is wrong. It will make it easy to switch over to the right field, and set the robot up with the right player number. The readme covers a lot of the functionality and how to use.
Things left to do

[ ] Add functionality to disconnect from wifi networks, so we don't remain connected to a field when not playing
[ ] NUbook page

Ah also this uses config from systemconfiguration, soccer, striker/defender/goalie but they're not in the role bc well systemconfiguration would start running, so I've just said in the readme to build those too. It's unlikely to be a problem because systemconfig and robocup role will be built at some point to the robot before this is used.


update readme

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Please upload report for BASE (main@5164990). Learn more about missing BASE report.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff            @@
##             main        #2   +/-   ##
========================================
  Coverage        ?   100.00%
========================================
  Files           ?         3
  Lines           ?       115
  Branches        ?        36
========================================
  Hits            ?       115
  Misses          ?         0
  Partials        ?         0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Going to UAA login page when already authenticated in UAA returns the 'UAA' home page regardless if the identity zone homeRedirect is configured

In our scenario, we have a tenant/subdomain defined who is using the UAA identity provider.  Their identity zone is configured with a homeRedirect link pointing to a particular URL.
I authenticated with a user, it redirects me to my application and everything is working fine.  However, if a user were to type in the URL of the login page for UAA in the browser while they're already authenticated, it renders the 'home' view regardless if the homeRedirect property is configured for the identity_zone.
I was wondering if there's a particular reason the LoginInfoEndpoint returns "home" view at the end of the login private method (line 340) instead of redirecting to '/home' which would force it to process the homeRedirect.

This issue has been fixed starting with UAA 3.7.0


feat(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-2.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1372

Questions ?
Please refer to the Backport tool documentation


HTML interactive examples: revise guidelines and assess issues

We need more detailed guidelines for HTML interactive examples. In this task we'll document some guidelines then do an analysis of the existing examples to see which ones need to be updated, and make a plan to do it.
Acceptance criteria

Guidelines for HTML interactive examples are agreed and updated.
We have a list of examples that need updating.

Closed as per conversation in final sprint planning

This is half-done:

the guidelines update part is pending final review: https://github.com/mdn/interactive-examples/pull/1184
the assessment part has been moved to a new issue: https://github.com/mdn/sprints/issues/538


@stryker-mutator/core peerDependency is still on v6.4.2

Question
Is it normal that @stryker-mutator/jest-runner and @stryker-mutator/typescript-checker has a peerDependency @stryker-mutator/core set to v^6.4.0 ?
Because of that, dependabot won't update @stryker-mutator/core… Is it intended ?
Stryker environment
"@stryker-mutator/core": "^6.4.2",
"@stryker-mutator/jest-runner": "^7.0.0",
"@stryker-mutator/typescript-checker": "^7.0.0",

Additional context
Here is for example the package.json file of<EMAIL_ADDRESS>:
"dependencies": {
    "@stryker-mutator/api": "7.0.0",
    "@stryker-mutator/util": "7.0.0",
    "semver": "~7.5.0"
  },
  "devDependencies": {
    "@stryker-mutator/test-helpers": "7.0.0",
    "@types/semver": "7.5.0"
  },
  "peerDependencies": {
    "@stryker-mutator/core": "^6.4.0", // <-- Why is it not set to 7.0.0 ?
    "typescript": ">=3.6"
  },

Nope, it's a bug. You should upgrade to 7.0.1.
Updating peer deps was a manual task. I've added a script to prevent these fuckups in the future: https://github.com/stryker-mutator/stryker-js/commit/b159f73a9b8327c6cc1694a4c1b76b58d7701430


Some tested improvements can be add.

Conclusion:

Using PyAv to read the video frame one by one and using subprocess.Popen('ffmpeg .....', stdin=subprocess.PIPE).stdin.write() can have a huge improved speed, faster than opencv 2x more. It is really fast!
Using soundstretch to alter the audio speed can get a perfect output, way better than audiotsm.
Using spleeter can isolate the vocal audio, so that while splitting chunks, background music or noise won't effect the splitting.

I have implemented them in my JumpCutter-Improved, so come here to send a friendly message and some useful informations.

I played around with soundstretch and it does sound a lot better than audiotsm does! I'll find a way to get this program in auto-editor, even though packaging it might be difficult. The homepage download didn't work and building from the source is reallly complex, so I just installed it with homebrew.
I quickly looked at the PyAv homepage/docs and I didn't see how to do what you're describing. I'll take a closer look at PyAv later in the day.
Isolating vocals is cool in theory but when well planned users can split their audio in a commentary track and a sound effect/music track, and it's not as useful as it seems. It would also almost certainly take more time than just looking a pure volume, yet I can still see it being very useful for a large group of users so I'll include it if I can. The biggest problem is design. Putting the different settings in terms that regular users can understand.
I'll try to implement the top two and solve some other issues before looking at spleeter for now.
Thanks for the information!

I played around with soundstretch and it does sound a lot better than audiotsm does! I'll find a way to get this program in auto-editor, even though packaging it might be difficult. The homepage download didn't work and building from the source is reallly complex, so I just installed it with homebrew.
I quickly looked at the PyAv homepage/docs and I didn't see how to do what you're describing. I'll take a closer look at PyAv later in the day.
Isolating vocals is cool in theory but when well planned users can split their audio in a commentary track and a sound effect/music track, and it's not as useful as it seems. It would also almost certainly take more time than just looking a pure volume, yet I can still see it being very useful for a large group of users so I'll include it if I can. The biggest problem is design. Putting the different settings in terms that regular users can understand.
I'll try to implement the top two and solve some other issues before looking at spleeter for now.
Thanks for the information!

I tanslated some my code into English, this function may help you understand PyAv process. PyAv really have few docs, these code wasted me so much time.
This output process will be very fast:

import av, subprocess

def ffmpeg_and_PyAv_process_video_stream(arameter, tempOutVideo, chunks):

    speed = [parameter.silenceSpeed, parameter.soundedSpeed]

    input_ = av.open(parameter.inputFile)
    inputVideoStream = input_.streams.video[0]
    inputVideoStream.thread_type = 'AUTO' # this can make reading input in multiprocess

    width = inputVideoStream.width
    height = inputVideoStream.height
    pix_fmt = inputVideoStream.pix_fmt
    averageFramerate = float(inputVideoStream.average_rate)

    process2 = subprocess.Popen(['ffmpeg', '-y',
                                 '-f', 'rawvideo',
                                 '-vcodec', 'rawvideo',
                                 '-pix_fmt', pix_fmt,
                                 '-s', f'{width}*{height}',
                                 '-framerate', f'{averageFramerate}',
                                 '-i', '-',
                                 '-pix_fmt', pix_fmt,
                                 '-vcodec', parameter.codec, # like 'libx264'
                                 '-crf', f'{parameter.crf}', # like '23'
                                 tempOutVideo], stdin=subprocess.PIPE, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)

    inputEquavalentNumber, outputEquavalentNumber = 0, 0
    chunk = chunks.pop(0)
    for packet in input_.demux(inputVideoStream):
        for frame in packet.decode():
            index += 1
            if len(chunks) > 0 and index >= chunk[1]:
                chunk = chunks.pop(0)
            inputEquavalentNumber += (1 / speed[chunk[2]])

            while inputEquavalentNumber > outputEquavalentNumber:
                in_bytes = frame.to_ndarray().astype(np.uint8).tobytes()
                process2.stdin.write(
                    in_bytes
                )
                outputEquavalentNumber += 1
    process2.stdin.close()
    process2.wait()

``

I tanslated some my code into English, this function may help you understand PyAv process. PyAv really have few docs, these code wasted me so much time.
This output process will be very fast:

import av, subprocess

def ffmpeg_and_PyAv_process_video_stream(arameter, tempOutVideo, chunks):

    speed = [parameter.silenceSpeed, parameter.soundedSpeed]

    input_ = av.open(parameter.inputFile)
    inputVideoStream = input_.streams.video[0]
    inputVideoStream.thread_type = 'AUTO' # this can make reading input in multiprocess

    width = inputVideoStream.width
    height = inputVideoStream.height
    pix_fmt = inputVideoStream.pix_fmt
    averageFramerate = float(inputVideoStream.average_rate)

    process2 = subprocess.Popen(['ffmpeg', '-y',
                                 '-f', 'rawvideo',
                                 '-vcodec', 'rawvideo',
                                 '-pix_fmt', pix_fmt,
                                 '-s', f'{width}*{height}',
                                 '-framerate', f'{averageFramerate}',
                                 '-i', '-',
                                 '-pix_fmt', pix_fmt,
                                 '-vcodec', parameter.codec, # like 'libx264'
                                 '-crf', f'{parameter.crf}', # like '23'
                                 tempOutVideo], stdin=subprocess.PIPE, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)

    inputEquavalentNumber, outputEquavalentNumber = 0, 0
    chunk = chunks.pop(0)
    for packet in input_.demux(inputVideoStream):
        for frame in packet.decode():
            index += 1
            if len(chunks) > 0 and index >= chunk[1]:
                chunk = chunks.pop(0)
            inputEquavalentNumber += (1 / speed[chunk[2]])

            while inputEquavalentNumber > outputEquavalentNumber:
                in_bytes = frame.to_ndarray().astype(np.uint8).tobytes()
                process2.stdin.write(
                    in_bytes
                )
                outputEquavalentNumber += 1
    process2.stdin.close()
    process2.wait()

``

And I recorded this video to show difference between using and not using spleeter in JumpCut process:
https://user-images.githubusercontent.com/19181833/103759219-58a7df80-504e-11eb-8a21-5e97b0040ea5.mp4

And I recorded this video to show difference between using and not using spleeter in JumpCut process:
https://user-images.githubusercontent.com/19181833/103759219-58a7df80-504e-11eb-8a21-5e97b0040ea5.mp4

You're right! av is faster than opencv.
Typically, it takes around a high 4 to a low 5 seconds to render example.mp4 on my machine using the default settings.
The av method takes a high 2 to a low 3 to render. Much better indeed.
One thing I noticed, it always seems to add the first frame, even if you explicitly cut off the first second.

Typically, it takes around a high 4 to a low 5 seconds to render example.mp4 on my machine using the default settings.
The av method takes a high 2 to a low 3 to render. Much better indeed.
One thing I noticed, it always seems to add the first frame, even if you explicitly cut off the first second.
Will look in to this more.
note: I did have to edit your example a bit to make it run so here's a gist

If you are sure your videos are all 8bit, remove the .astype(np.uint8) could speed up 20% more again.

If you are sure your videos are all 8bit, remove the .astype(np.uint8) could speed up 20% more again.

@HaujetZhao
I removed .astype(np.uint8) and it's working fine so thanks for the tip.
I got soundstretch working but I'm planning to add it in audiotsm2 instead of auto-editor itself.
I'll close this thread since most of the points are addressed.
For future lurkers, if you need to put bullet points in your feature tab, it's probably a good idea to make each point its own separate issue.


Protostar

Hey,
I've recently started using Protostar and it's got a great support for cairo 1. Perhaps it would be a good idea to add a chapter on the tool?

Yes! This will be next after the Starknet contract sections are covered.

I can help with that if it's needed :)

I think it's best if we start after the release next Sunday. I don't think it fits well in Cairo projects yet, I would like to wait for the Scarb integration. Then, sure!


(fleet) add a tracer OCI entry to the catalog

This PR:

Adds a tracer OCI to the catalog
Fixes the handling of remote images without an explicit platform set

/merge

/merge -c

/merge


ISSUE-314: Allow custom class names for generated clients and server resources/handlers

Added a new flag x-{jvm,scala,java}-class-prefix to allow for an arbitrary class name in the generated code.
Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

[x] I acknowledge that all my contributions will be made under the project's license.

Codecov Report

Merging #719 into master will increase coverage by 0.08%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #719      +/-   ##
==========================================
+ Coverage   81.20%   81.28%   +0.08%
==========================================
  Files          78       78
  Lines        5197     5200       +3
  Branches      139      129      -10
==========================================
+ Hits         4220     4227       +7
+ Misses        977      973       -4

Impacted Files
Coverage Δ

...n/scala/com/twilio/guardrail/extract/package.scala
100.00% <100.00%> (ø)

...twilio/guardrail/generators/SwaggerGenerator.scala
74.46% <100.00%> (+3.81%)
:arrow_up:

...main/scala/com/twilio/guardrail/core/Tracker.scala
95.45% <0.00%> (+2.27%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 84c0e70...10222d6. Read the comment docs.

sounds good.  thanks for your help on this!

Ugh, so sorry.  I could have sworn I merged this, but I hadn't, and already cut a new release.  Will work on 0.60.1 soon.

Thanks for the merge, Brian.


plugin-drizzle: add drizzle plugin and persistence

Looks good for now! I wonder if we should also create the persistence plugins "manually" like we do for the reorg tables? Call them __indexer_checkpoints and __indexer_filters.

Looks good for now! I wonder if we should also create the persistence plugins "manually" like we do for the reorg tables? Call them __indexer_checkpoints and __indexer_filters.

i think its a good idea to create it manually, so user has to do one less thing during a setup but i have some concerns like what if we need to modify these table structures in future releases, we'd need a strategy to handle users who have already migrated using the older table definitions and potentially make schema updates more complex to manage.

We'd need a strategy to handle users who have already migrated using the older table definitions and potentially make schema updates more complex to manage. Same concern with reorg tables.

Yes, we will need to handle migrations if the table schema changes. Usually this is done like this:

create a schema_version table with just two columns (the current schema version, e.g. 0 and a key used in the upsert statement)
create a list of migrations (sql statements) to execute to upgrade each schema version to the next.

For example once we reach schema version 3
// constants based on the current release.

const LATEST_VERSION = 3;
const migrations = [
[
  `/* migrations from v0 to v1 */`
],
[
  `/* migrations from v1 to v2 */`
],
[
  `/* migrations from v2 to v3 */`
],
];

// In the initialization code.
const currentVersion = `select version from schema_version where k = 0`.run();
let v = currentVersion ?? 0;

// run all migrations
`begin transaction`.run();
while (v < LATEST_VERSION) {
  // a migration can have multiple statements
  for (const statement of migrations[i]) {
   statement.run();
  }
  v += 1;
}
// bump version stored in the schema
`update schema_version set version = ${LATEST_VERSION} where k = 0`.run();
`commit transaction`.run();

I'm happy to make this change in this pr. You just need to create the table __indexer_schema_version with k = 0 and version = 0. Then define you can implement most of the code above but without the need to run the migrations for now (so simply check the version is not greater than the current version).


autoclassification of "1,2-dichloroethane metabolic process"

The term 1,2-dichloroethane metabolic process is not classifying under halogenated hydrocarbon metabolic process even though all the relevant terms are defined with equivalence axioms referencing ChEBI terms.
Looking at ChEBI, it looks this is because they have defined haloalkane as a subclass of organohalogen compound instead of as a subclass of halohydrocarbon. I have submitted a suggestion to ChEBI.

[Term]
id: CHEBI:24469
name: haloalkane
subset: 3_STAR
def: "An organohalogen compound that is an alkane in which at least one hydrogen atom has been replaced by with a halogen atom." []
synonym: "alkyl halide" RELATED [ChEBI]
synonym: "haloalkanes" RELATED [ChEBI]
synonym: "alkyl halides" RELATED [ChEBI]
is_a: CHEBI:36684
[Term]
id: CHEBI:36684
name: organohalogen compound
subset: 3_STAR
def: "A compound containing at least one carbon-halogen bond." []
synonym: "organohalogen compounds" RELATED [ChEBI]
is_a: CHEBI:33285
is_a: CHEBI:37578

ChEBI responded very quickly and has made the suggested change already. I will leave this open until it propagates through to GO and I can confirm that 1,2-dichloroethane metabolic process classifies where it should.

Hi @krchristie , Is there anything that needs to be done here, or can this close ?

As I said above, I'd like to leave it open until it propagates through to GO to confirm that the classification is working properly. As of today, it does not look this has occurred.

This looks fixed. Please reopen if you notice a problem.

This looks fixed. Please reopen if you notice a problem.


$page->addScriptTag does not work

addScriptTag does not work, see example:
Reproducible example

$this->page->goto($url);
$res = $this->page->addScriptTag([
	"path" => "my_script_in_current_working_dir.js"
]);
$result = $this->page->evaluate(JsFunction::createWithBody("function_from_script_call();"));

Expected behavior
The function should be executed
Generated logs
Fatal error: Uncaught Nesk\Rialto\Exceptions\Node\FatalException: Evaluation failed: ReferenceError: function_from_script_call is not defined

Environment (please complete the following information):

OS: Opensuse Tumbleweed
Node version: 8.15.1
PHP version 7.3.6

My Node package manager is:

[x] NPM (specify the version)
[ ] Yarn (specify the version)
[ ] Other (specify the name and version)

Just tried with this simple code and it works, I can't reproduce your bug:
<?php

require 'vendor/autoload.php';

use Nesk\Puphpeteer\Puppeteer;
use Nesk\Rialto\Data\JsFunction;

$puppeteer = new Puppeteer;
$browser = $puppeteer->launch();
$page = $browser->newPage();
$page->goto('https://example.com');

$helloFunc = 'const hello = () => "Hello World!"';
$page->addScriptTag(['content' => $helloFunc]);

$result = $page->evaluate(JsFunction::createWithBody('return hello()'));

var_dump($result); // Prints: string(12) "Hello World!"

Maybe the path to your file my_script_in_current_working_dir.js is not correct? Try to pass an absolute path to avoid common mistakes with relative ones.
Since this is not a bug with PuPHPeteer, I'm closing this issue, but feel free to provide me an answer with more details and a reproducible example.


Trans help/ops/setup into Chinese

fix format

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

Needs approval from an approver in each of these files:

content_zh/OWNERS

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

Hi @DavadDi. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
I understand the commands that are listed here.

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

@DavadDi CI failed.
- ./public/zh/help/ops/setup/validation/index.html
  *  linking to internal hash #invalid-configuration-is-accepted that does not exist (line 1863)
     verify webhook
configuration
  *  linking to internal hash #invalid-configuration-is-accepted that does not exist (line 1870)
     验证 webhook 配置
htmlproofer 3.9.1 | Error:  HTML-Proofer found 2 failures!
LINTING FAILED
Exited with code 1

Change the hash tag to Chinese.

还有些链接需要调整

@rootsongjc  已经调整完毕，帮忙 review 一下，谢谢

/ok-to-test

@rootsongjc  并列单词的问题已经修复。

/lgtm

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

Needs approval from an approver in each of these files:

content_zh/OWNERS [rootsongjc]

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


Add missing romaji names

Added missing romaji names (494-898)

Generation V
Generation VI
Generation VII
Generation VIII

Source: https://bulbapedia.bulbagarden.net/wiki/List_of_Japanese_Pokémon_names

Hi @Naramsim, can you also review this PR?

Hi @Naramsim, I just want to know when the API is updated?

Sry! I'll run the script now

@Naramsim could you pls update graphql also?

Ahhh, that's a bit more tiring. I'll try my best

@anhthang I should have done it. Can you check please?

@anhthang I should have done it. Can you check please?

It seems working now, thank you so much


Decide if kube-proxy needs multiple channels, then X

[ ] decide if kube-proxy needs multiple update channels.

seems useful to make our components more composible.
could be useful for people who use GCE containerVM, but not kubernetes?
would we ever want to setup services/endpoints from file or http source instead of kube-apiserver, e.g. to help bootstrapping/layering?

If NO:

[ ] Drastically simplify code in pkg/proxy/config to only support one source.  See also #3412

[ ] Get all cloud-providers using api source instead of etcd source.
[ ] Delete pkg/proxy/config/etcd*.go.
[ ] Delete code in pkg/proxy/config/config*.go that is supporting merging of multiple sources.
[ ] further simplifications will probably follow.

If YES:

[ ] Deduplicate the "Merge Deltas from multiple sources" pattern of code.

pkg/proxy/config/config.go and pkg/kubelet/config/config.go are both trying to do this.
the pattern is to have a Mux which takes deltas from a set of sources and updates a store.
[ ] use a common generic (works with any Kind) implementation for podStorage, endpointsStore, serviceStore.
[ ] use of NewBroadcaster in proxy is probably not needed since only one thing is waiting for the merged updated.

Discussion on whether kube-proxy makes sense can start now.
If the answer is yes, work may be better done with or after #3412.

While reading cluster/rackspace/cloud-config/master-cloud-config.yaml and cluster/rackspace/cloud-config/minion-cloud-config.yaml, I saw a style where etcd was used to distribute config to nodes, but etcd itself was decoupled from the programs that depended on it.  This allowed for a single etcd change to trigger a chain actions, respecting dependencies, and gave room for admins to hack in changes with bash scripting as needed.
That makes me lean more towards removing etcd-source support from kubelet and kube-proxy, and just supporting apiserver and file sources (and maybe http sources).

I vote simpler.
On Wed, Jan 14, 2015 at 4:31 PM, Eric Tune<EMAIL_ADDRESS>wrote:

While reading cluster/rackspace/cloud-config/master-cloud-config.yaml and
cluster/rackspace/cloud-config/minion-cloud-config.yaml, I saw a style
where etcd was used to distribute config to nodes, but etcd itself was
decoupled from the programs that depended on it. This allowed for a single
etcd change to trigger a chain actions, respecting dependencies, and gave
room for admins to hack in changes with bash scripting as needed.
That makes me lean more towards removing etcd-source support from kubelet
and kube-proxy, and just supporting apiserver and file sources (and maybe
http sources).
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3413#issuecomment-70020342
.

Decision: delete etcd support from kubelet and kube-proxy.

Remaining work is to Drastically simplify code in pkg/proxy/config to only support one source.  See also #3412
- [ ] Get all cloud-providers using api source instead of etcd source.
- [ ] Delete pkg/proxy/config/etcd*.go.
- [ ] Delete code in pkg/proxy/config/config*.go that is supporting merging of multiple sources.
- [ ] further simplifications will probably follow.

#5252 removes pkg/proxy/config/etcd.go

Remaining work covered by #3412


Add 1.8 changelog

What this PR does / why we need it:
This adds the changelog for 1.8.0.
What type of PR is this?
/kind chore
Does this PR introduce a user-facing change? Then add your Release Note here:
NONE

Documentation:
NONE

/kind chore

/approve
/lgtm


Exceptions a-plenty, early points get scanned repeatedly, late ones sometimes miss out

There are several exceptions being thrown, mainly from the pgoapi, some from other sources.
Plenty has changed and there are sure to be teething issues. That's fine.
But when a worker restarts following an exception, it starts from the beginning of it's point list and it seems almost up to chance that a point near the end of it's points will ever get scanned in any given 15minute period due to the worker maybe restarting.
This means some points get scanned very many times and some will get scanned much less frequently.
Is it possible to make restarted workers start scanning from the last scanned point (or maybe from the next point to prevent possible loops) to even out the scanning even in the presence of exceptions?

A stack (almost all) of the errors were database errors. I moved to MySQL, increased the pool size and stopped logging forts and they have all gone away.
I've got one worker stuck, seemingly at one particular cell. It happens every few minutes and the worker is forced to restart. It's the only recurrent error in my log now.
[2016-08-09 19:04:18,250][ worker-32][   ERROR][L 138] A wild exception appeared!
Traceback (most recent call last):
File "worker.py", line 133, in run
self.main()
File "worker.py", line 174, in main
map_objects = response_dict['responses'].get('GET_MAP_OBJECTS', {})
TypeError: 'NoneType' object has no attribute 'getitem'

run pip install -r requirements.txt -- upgrade

I implemented restarting worker from its last point in coroutines branch. I have a feeling that it will be merged to master soon.


[e2e]: generic release main default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/v24.0.252
Run: https://github.com/slsa-framework/example-package/actions/runs/4299550999
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.release.main.default.slsa3.yml
Trigger: release
Branch: v24.0.252
Date: Wed Mar  1 02:55:09 UTC 2023

Should be fixed by https://github.com/slsa-framework/example-package/pull/145 (similar with all other Bazel related failures - Dependabot still doesn't handle Bazel deps correctly and I failed to properly notice this when reviewing the PR)

Repo: https://github.com/slsa-framework/example-package/tree/v24.0.253
Run: https://github.com/slsa-framework/example-package/actions/runs/4300192904
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.release.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.release.main.default.slsa3.yml
Trigger: release
Branch: v24.0.253
Date: Wed Mar  1 05:03:05 UTC 2023
Tests are passing now. Closing this issue.


Upgrade tgi-gaudi to version 2.0.6

Description
Upgrade tgi-gaudi to version 2.0.6.
Issues
#549.
Type of change
List the type of change like below. Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

Dependencies
List the newly introduced 3rd party dependency if exists.
Tests
Describe the tests that you ran to verify your changes.

The docsum failure is caused by issue https://github.com/opea-project/GenAIExamples/issues/1129, not related to this PR's changes


Update maxatac train and optimize

We have had some long training times with maxATAC v1. I think we are not utilizing the multi-processing as effectively as we could. We have switched our training approach after several issues with older versions of tensorflow. Related issues: #28 #47
Currently, the training times are approaching ~1 hour per epoch, where historically they have been around 20 minutes or less. This was using 16 cores and 64GB of memory.
I think that we need to remove the OrderedEnqueuer, increase the number of workers, and integrate the data generator into the SeqDataGenerator object.
I tested a version that implements the above and achieved ~13 minutes per epoch. This method needs to be validated still.

@FaizRizvi  worked on speeding up the training ordered enqueuer and enabling multiprocessing. We were able to speed up training times as reported in pull request #106 . We also made general updates to the training parser, ROIgenerators, and added documentation for training functions.


Luscious.net

Ripme version:
1.7.74
Exact URL you were trying to rip when the problem occurred:
https://luscious.net/albums/women-of-color_58/
Please include any additional information about how to reproduce the problem:

Expected Behavior
Download of the full gallery
Detail the expected behavior here.
Actual Behavior
After 320 Pictures error "no protocol: //cdni.luscious.net/757/lusciousnet_curly_haired_beauty_1474259667.jpg" shows up, stops ripping the gallery
Detail the actual (incorrect) behavior here. You can post log snippets or attach log files to your issue report.

Looks like a minor issue with the ripper not checking if the url has https in it


Getting an error  when the ecs instance is getting released.

Describe the bug
Getting below error
Query 1 ERROR: ERROR:  rpc error: code = Unknown desc = Post "https://ecs-cn-hangzhou.aliyuncs.com/?AccessKeyId=LTAI5tQmMTfSx9pg89kNcXzn&Action=DescribeInstances&Format=JSON&PageNumber=1&PageSize=50&RegionId=us-east-1&Signature=D%2FeFNUa5B6gbLdn%2BwXoKTunTOZE%3D&SignatureMethod=HMAC-SHA1&SignatureNonce=4af6d1398daf2f69b953f0e6934bc7af&SignatureType=&SignatureVersion=1.0&Timestamp=2021-07-06T09%3A58%3A52Z&Version=2014-05-26": dial tcp: i/o timeout
Steampipe version (steampipe -v)
Example: v0.6.0
Plugin version (steampipe plugin list)
Example: v0.0.13
To reproduce
Run below query when an instance is getting released.
select * from alicloud_ecs_instance;
Expected behavior
Additional context

Can't reproduce the bug.

This is connection related and does not happen frequently. My observation has been to restart the steampipe service and try again. Lets observe this for other providers.


Translations update from Hosted Weblate

Translations update from Hosted Weblate for JWLManager/App strings.
Current translation status:

Excellent job, @korotkiyYurii !

Hi Erik,
Could you please confirm that the Russian part is finished?
By the way my wife has intermediate Chinese so I can ask her to take part
in this...
A little question about Timeline.  Maybe it will be possible to make a
Russian translation directly in your sources?
And then you will compile this project..
ср, 10 січ. 2024 р. о 15:51 Eryk J. @.***> пише:

Excellent job, @korotkiyYurii https://github.com/korotkiyYurii !
—
Reply to this email directly, view it on GitHub
https://github.com/erykjj/jwlmanager/pull/136#issuecomment-1884888355,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANFLV47M46WQ2JXC6QYNSWDYN2MFLAVCNFSM6AAAAABBULBGASVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBUHA4DQMZVGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

--

Best regards,
Yurii Korotkiy
skype: jurij.korotkij
+380638575166

Hi Yurii,
There are three comments still waiting for your review. Please have a look.
As to Chinese, that would be awesome. It's there as well, just waiting :-)
Will you be able to do the Ukrainian as well? If so, I can add the templates.
As to translating TBH, you would literally have to translate everything. That's a lot of work and it may change. In fact, I'm adding more events from Wikipedia right now. Maybe once it "stabilizes" I will think about making it "translateable".

Now it`s closed? If not - please point me via screenshot where it is
unsolved.
Ukrainian is my native language. Please make the required preparations for
translation.
My wife is agreed to help with Chinese. This however might take a longer
time.
Will be perfect if Timeline will be translateble )
чт, 11 січ. 2024 р. о 16:26 Eryk J. @.***> пише:

Hi Yurii,
There are three comments still waiting for your review. Please have a look.
As to Chinese, that would be awesome. It's there as well, just waiting :-)
Will you be able to do the Ukrainian as well? If so, I can add the
templates.
As to translating TBH, you would literally have to translate everything.
That's a lot of work and it may change. In fact, I'm adding more events
from Wikipedia right now. Maybe once it "stabilizes" I will think about
making it "translateable".
—
Reply to this email directly, view it on GitHub
https://github.com/erykjj/jwlmanager/pull/136#issuecomment-1887299136,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANFLV4YQ4BKFO2C5UPWIKK3YN7ZAVAVCNFSM6AAAAABBULBGASVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBXGI4TSMJTGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

--

Best regards,
Yurii Korotkiy
skype: jurij.korotkij
+380638575166

Ukrainian templates have been added. But please don't feel like you have to rush ;-)

Hi Erik,
Just looked deeper at your application.
Great job!
I have only one little case for your attention.
On my laptop Im using  screen 1920 * 1080 and 150% scale (have a problems with eyes, but don't think its rare case)
Cannot work with full list till change scale to 125% because screen size is
fixed and bottom strings are unavailable:
[image: image.png]
It`s really not a problem for me, but some users can get stuck.
Hope this bugreport helped.
:)
чт, 11 січ. 2024 р. о 22:28 Eryk J. @.***> пише:

Ukrainian templates have been added. But please don't feel like you have
to rush ;-)
—
Reply to this email directly, view it on GitHub
https://github.com/erykjj/jwlmanager/pull/136#issuecomment-1887913354,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANFLV4ZQRL7XCCYRCBHBTCDYOBDQRAVCNFSM6AAAAABBULBGASVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOBXHEYTGMZVGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

--

Best regards,
Yurii Korotkiy
skype: jurij.korotkij
+380638575166

Yurii,
First of all, thank you so much for the translations!!!
Also, I've created an issue
But your screenshot wasn't added. Please readd it there. Thanks!


File validator assumes anything after a '.' is the extension

Describe the bug

The file validator in ingest assumes anything after a '.' is the extension

To Reproduce
Steps to reproduce the behavior:

Go to https://staging.contribute.data.humancellatlas.org/
Create a submission which has a metadata file entity, whose name has a '.' in it, e.g. a sequencing file with the name 24905_6#205.cram-1.fastq.gz
Sync the files from the hca-util upload area
Wait for the files to validate
See error

Expected behavior
We should be able to upload files with

.
in the names. Instead, the validator is recognizing everything after the first
.
as the file format

Screenshots / Logs

** Links **
https://embl-ebi-ait.slack.com/archives/C016R78CDV1/p1621478679034000

This affects the submission of this dataset: https://contribute.data.humancellatlas.org/projects/detail?uuid=dc1a41f6-9e09-42a6-959e-3be23db6da56


feat: change to ev::keydown

Fixes #91
Context: https://docs.rs/leptos/latest/leptos/ev/struct.keydown.html

Would you mind to add a changelog entry within a header ### Fixes?

Yes of course. Will do this tomorrow first thing

If you resolve #80 we can release the final v0.2.0


LOGIN DOESNT HAPPEN

Ive done the same thing as you guided in your youtube video technical babaji, the same source code, the same zip file used. but when i press login, it doesnt login with many errors. I am very new to this coding thing. please help me

thanks ive bugged it and it worked out ....


publish using maven-publish resulting in shrinked pom.xml version

Hello!
Publishing my gradle plugin using maven-publish plugin to maven central repository producing shrieked pom.xml version. This shrieked version only contains artifact information and dependencies which is leading to fail publication on maven central.
Replacing maven-publish plugin with:
    dependencies {
        classpath 'com.vanniktech:gradle-maven-publish-plugin:0.19.0'
    }

apply plugin: "com.vanniktech.maven.publish"

Allows me to publish to maven central, since this plugin crates not filtered pom.xml.
For some reason output of maven-publish generatePomFileForPublication - is correct. Only problem with maven-publish it filter pom.xml when uploading to repository or local maven repo (looks like it also failed to update signatures, so pom file is unsigned in the result)
My projects are open source:

https://gitlab.com/axet/gradle-android-dx

To make 'com.vanniktech.maven.publish' plugin to work update gradle.wrapper to the 7.0
You can see pom.xml here:

https://plugins.gradle.org/m2/com/github/axet/gradle-android-dx/0.0.6/

You are using the wrong publication name, it should be named pluginMaven.

We need to improve the docs to make this clearer.

Thanks!
Replacing 'mavenJava' with 'pluginMaven' causing following error:
"Maven publication 'pluginMaven' cannot include multiple components"
My guess gradle publish two components for:
/home/axet/.m2/repository/com/github/axet/dxplugin/com.github.axet.dxplugin.gradle.plugin/0.1.1
and
/home/axet/.m2/repository/com/github/axet/gradle-android-dx/0.1.1
I'm afraid moving to one component will affect 'gradle publishGradle' and will prevent it to work'? Can booth repositories to work gradle plugin repo and maven central at the same time?

The plugin takes care of the setup, only handle the pom part and it should be good.
As for the publication: publish should take care of the publication to repositories of your choice. You might need to enhance the plugin marker POM as well for Maven Central. And publishPlugins will take care of the portal publication.
Both will end up relying on the configured publications.

Here is an explanation. Looks like documentation need to be updated, and some how fixing pom.xml overwriting without updating asc.
Correct upload command is:
./gradlew publishMavenJavaPublicationToMavenLocal publishMavenJavaPublicationToMavenRepository

https://discuss.gradle.org/t/maven-publish-does-not-create-full-features-pom-xml/42395/6

Linked PR will enhance the java-gradle-plugin documentation, clearly describing the Maven publications it generates (when used together with the maven-publish plugin).


ZEPPELIN-219: Paragaph mode auto-detection - initial impl

Here are the mode autodetection rules (and optimizations):

Evaluates the editor mode on each aceChange event.
(Optimization 1) Evaluates the mode only if the cursor is within the first 30 characters of the buffer.
(Optimization 2) Sets the mode (e.g. session.setMode(new mode) ) only if the new mode differs from the previous one.

Also the mode tag detection structure is refactored to bring together the interpreter tag test and the mode reference. The convention looks like this:
  var editorModes = [
     [<Your Mode 1 Reg Expression Test>, <ACE Mode 1>],
     ......
     [<Your Mode N Reg Expression Test>, <ACE Mode N>]
  ];

For example:
  var editorModes = [
     [/^%spark/, 'ace/mode/scala'],
     [/^%(\w*\.)?\wql/, 'ace/mode/sql'],
     [/^%md/, 'ace/mode/markdown'],
     [/^%sh/, 'ace/mode/sh']
  ];

Note: apparently i didn't commit all changes with the latest commit (40b9a33).  Will redo it  again.

I would love to see some unit tests for this.

@djoelz, this change affects paragraph.controller.js. I am not sure i've seen units tests for this or the other js controllers? But i might have missed something.
@Leemoonsoo is there some samples for testing such behavior?

Two possible places for test. test controllers and directives or test using selenium

@Leemoonsoo thanks for the references. If not mistaken the test controllers and directives doesn't contain any real controller tests at the moment. As i've mentioned earlier i'm not much of js/angular authority  and would prefer to learn from someone else's experience and examples. @djoelz do you feel like you can help here?
Otherwise we can review and merge this and postpone the tests for after someone provide an example such?

Maybe I can help with those tests, I guess we need:

Some tests for the setMode function
A test scenario for Optimization 1(typing 30 characters and having setMode called)

@corneadoug, your help will be well appreciated! The suggested testset sounds good and covering the functionality.

@tzolov I am also new to the angular/js world but if @corneadoug can provide a starting point I can help with the more tests.

Hi, Sorry guys I'm taking a bit of time on this one.
I actually started by understanding the code to know what test I could make, and ended up spending time optimizing the loop and conditions first :P
One problem though is that I can't find @tzolov repository in the github interface when I try to make a pull request :/

@corneadoug not sure but think that to be able to see it in "create new PR" ui you need to make sure that the branch you are using is actually derived from https://github.com/tzolov/incubator-zeppelin/tree/ZEPPELIN-219 (either checkouted from ZEPPELIN-219 branch of the clean clone of tzolov/incubator-zeppelin or from the new 'remote' pointing here, inside your existing repo)

I created a remote with his branch, then used his branch as a base.
The weird part being that I have the choice of everybody except him

@tzolov can you merge this into your branch then? https://github.com/corneadoug/incubator-zeppelin/tree/improve/ZEPPELIN-219

@corneadoug, thanks for the improvements.
just merged the corneadoug/improve/ZEPPELIN-219 branch

@corneadoug,  have you had chance on writing an unit test(s) for this PR?
If you have not time and there are no other objections may i suggest to have this improvement merged? It is been hanging around for some time now and there few other tickets depending on it as well.

@tzolov I started doing it, if possible give me a day to finish it up

@corneadoug, glad to hear you are working on this. Take your time. Your help is highly appreciated and will help me/us learn how to write such tests!

@tzolov let's rebase once #250 is merged, so that I can do a PR without conflicts

@corneadoug it is done. just rebased (after ZEPPELIN-228) and pushed.

Just spent a lot of time on this.
I think we will have to create an issue, and do the tests later.
With Current version of ui-ace that we use, we can't test it because of a bug (https://github.com/angular-ui/ui-ace/issues/73)
We would need to Bump to newer version (0.2.x), but those versions have breaking changes.
I pretty much figured out what we need to change, but can't guarantee that everything would be working (it would take lot of time to manually test + write tests). which would delay more this PR.
So the best would be to do the test later.

Thanks for the update @corneadoug. I've faced the ace upgrade issue while preparing the (ZEPPELIN-216).  When i tried to upgrade ace to 1.2.0 the existing ui-ace version complained. I've managed to increase ui-ace but had to force some dependency resolutions and was not confident it will not cause side effects. So i upgraded ace to safest ace 1.1.9 version instead. But if you manage to upgrade ui-ace (very outdated it seems) it will allow us upgrade ace-build as well.
Also i would still love to learn how to write angular controller unit tests.
@Leemoonsoo , @felixcheung it seems that this PR (e.g. ZEPPELIN-219) is ready to merge.
The tests will come after the ui-ace upgrade.

@tzolov : You can find few test in PR #262,
+1 for the merge (I too can support on writing test)

Looks good to me!


Flutter upgrade caused problems with dependencies

I haven't updated flutter in a long time and i decided i should before i deploy my app to see if anything needed to be changed.  Before i was using v.0.5.1, and i just upgraded to v 0.7.3.  I ran my code to the simulator right away and got errors about my dependencies.  I tried to run packages upgrade but that didn't work.  When i try to run my app i get this error,
Because no versions of flutter_launcher_icons match >0.6.1 <0.7.0 and flutter_launcher_icons 0.6.1 depends on dart_config from git, flutter_launcher_icons ^0.6.1 requires dart_config from git.
So, because "myapp" depends on both dart_config from hosted and flutter_launcher_icons ^0.6.1, version solving failed.
pub get failed (1)
i currently have these 2 versions in my pubspec
dart_config: ^0.5.0
flutter_launcher_icons: "^0.6.1"

I guess copying the dart_config dependency from dependencies: ... to dependency_overrides: ... should help you overcome the problem.
Please consider asking support questions in one of the other channels listed at http://flutter.io/support .
If you're still stuck and post on one of the listed support channels, please post the relevant parts from your pubspec.yaml file.
I'm closing this issue because I'm pretty sure there is nothing to do for the Flutter team.


There should be getDimension() in Entity Class

It's tricky to know which dimension an entity is in.
Describe the solution you'd like
Add getDimension() into Entity Class!
Describe alternatives you've considered

Commands.run(`testfor @e[name="${random string}",rm=0]`, overworld)

I agree a lot, this would be a nice addition, maybe a property would be a better option tho, considering they are remaking lot of property-like methods to properties, so like <Entity>.dimension would be a better solution, but I like the idea nonetheless.


The content of children component is not updated

I installed the package and setup like below. The problem is when I visit children components, the breadcrumbs was showed up right, but the content of that child component didn't get change. For example, when I entered the cart page it didn't show up the content of CartPage component and still keeps content from HomePage component.
router/routes.js
export default [
    {
        name: 'home',
        path: '/',
        component: HomePage,
        meta: {
            breadcrumb: 'Homepage',
        },
        children: [
            {
                name: 'product',
                path: '/products/:id/:slug',
                component: ProductSingle,
                meta: {
                    breadcrumb: 'Product',
                },
            },
            {
                name: 'cart',
                path: '/cart',
                component: CartPage,
                meta: {
                    breadcrumb: 'Cart',
                },
            },
        ]
    }
];

router/index.js
import Vue from 'vue';
import VueRouter from 'vue-router';
import routes from './routes';
import VueBreadcrumbs from 'vue-breadcrumbs';

Vue.use(VueRouter);
Vue.use(VueBreadcrumbs);

const router = createRouter();

export default router;

/**
 * The router factory
 */
function createRouter() {
    const router = new VueRouter({
        mode: 'history',
        routes,
        scrollBehavior(to, from, savedPosition) {
            return {x: 0, y: 0}
        }
    });

    return router;
}

the same problem, how to fix this?


fix: remove rt.NoEscape which may lead to bad pointer fatal

What type of PR is this?

fix
Check the PR title.

[X] This PR title match the format: <type>(optional scope): <description>
[X] The description of this PR title is user-oriented and clear enough for others to understand.
[ ] Attach the PR updating the user documentation if the current PR requires user awareness at the usage level. User docs repo

(Optional) Translate the PR title into Chinese.
(Optional) More detailed description for this PR(en: English/zh: Chinese).

en: rt.NoEscape makes the compile ignore escape analysis which may lead to invalid pointer if the stack is relocated
zh(optional):
(Optional) Which issue(s) this PR fixes:

(optional) The PR that updates user documentation:

#33 fixed this issue with better performance.


refactor scheduling config code path

Signed-off-by: Joseph<EMAIL_ADDRESS>Ⅰ. Describe what this PR does
Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews

/approve


[CRITICAL] - Welcome Message GIF is not displayed

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.64-1
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @zsgreenwald
Slack conversation (hyperlinked to channel name): #convert
Action Performed:

Navigate to a conversation where a welcome message was posted

Expected Result:
The gif image should load.
Actual Result:
Gif image is not loading.
Workaround:
N/A
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

View all open jobs on GitHub

I can't work out how to repro, but it's clear from the testing and the thread that it's a very real issue.

Guess it's because this js resource thirdPartyScripts.js is not fetched properly. While the name 'thirdPartyScripts.js' indicates that this file is a js type file, server actually responds with a html file.

It looks like the image is trying to load from animations/animation_setupguide.gif instead of the full URL to the CDN (https://d2k5nsl2zxldvw.cloudfront.net/images/animations/animation_setupguide.gif).

Looking into it, it seems the backend's onyx update is being sent with only animations/animation_setupguide.gif as path (as @jjcoffee mentioned). Looking into Auth it seems the URL is being correctly build, let me try to find out where this is getting cut.

Yeah looks like we do construct it properly, very weird how it reaches the frontend cut off like that. I'll let you handle this @MarioExpensify but ping me if you need anything!

Most likely something to do with the CDN env variable on BE side since https://d2k5nsl2zxldvw.cloudfront.net/images/ seems to be missing from the source of the image passed to the FE on recent #admins rooms.
This must've happened recently as I have older WS #admins rooms where the GIF shows as expected.

PR was merged & deployed to production.

@zsgreenwald provided some production tests, looks like we're good! Closing this.


V1.0.0 dev

new optional functionality to return only true/false
removing the dependency on jest and using the native nodejs v20+ test
removing jsdoc from development dependencies and changing the script to use npx
minimum compatible version of nodejs changed to 20.10

pre-release: v1.0.0

new optional functionality to return only true/false
removing the dependency on jest and using the native nodejs v20+ test
removing jsdoc from development dependencies and changing the script to use npx
minimum compatible version of nodejs changed to 20.10


This is not an issue! I really love Webpack ♥, thank you!

You're welcome. 🙇🙇🙇 And thank you for the kind feedback. If you ever want to be more involved in the project, never hesitate to reach out.

It looks like you just deleted/ignored our lovely crafted issue template. It was there for good reasons. Please help us solving your issue by answering the questions asked in this template. I'm closing this. Please open a new issue with filled issue template. Also make sure your issue is not a question. Questions should be posted on Stack Overflow.
Hope I'm doing this right 😂

Big thanks!


tour: [REPLACE WITH SHORT DESCRIPTION]

Context: https://go.dev/tour/welcome/1
Change the title above to describe your issue and add your feedback here, including code if necessary

was this ticket opened by mistake?  No details were added..


Jiangyu6 patch 3

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@7796176). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master      #4   +/-   ##
========================================
  Coverage          ?   94.8%
========================================
  Files             ?       2
  Lines             ?     250
  Branches          ?       0
========================================
  Hits              ?     237
  Misses            ?      13
  Partials          ?       0

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7796176...e22e1fd. Read the comment docs.


How to show labels for inActive tab in 0.9.0

What kind of Issue is this?
Question
Actual behavior

What is happening?
Not showing labels for inactive tabs
Is it happening on Android, iOS or both?
Checked in Android only.

Expected behavior

What did you expect to happen?
Wanted to show labels for inactive tabs as well

Environment

software
version

react-native-material-bottom-navigation
0.9.0

react-native or expo
0.48.4

node
v9.10.1

npm or yarn
6.0.0

The Tabs (in "shifting" mode) in v0.9.0 only show the label when they're active. You can get around this by disabling shifting mode...
<BottomNavigation shifting={false} />

...or by updating to v1.0.0.