Simple markdown support

FAQ

[X] I have checked the FAQ and it didn't resolve my problem.

Announcement

[X] I have checked Breaking change announcement.

Minimal reproducible full config
not relevant but
local cmp = require "cmp"

require("luasnip.loaders.from_vscode").lazy_load()

local formatting_style = {
	-- default fields order i.e completion word + item.kind + item.kind icons
	fields = { "abbr", "kind", "menu" },
	format = require('tailwindcss-colorizer-cmp').formatter,
}

local function border(hl_name)
	return {
		{ "╭", hl_name },
		{ "─", hl_name },
		{ "╮", hl_name },
		{ "│", hl_name },
		{ "╯", hl_name },
		{ "─", hl_name },
		{ "╰", hl_name },
		{ "│", hl_name },
	}
end

local icons = {
	Text = "󰉿",
	Variable = "󰜢",
	Snippet = "",
	Function = "󰊕",
	Keyword = "󰌋",
	Field = "",
	Property = "",
	Enum = "",
}
local options = {
	completion = {
		completeopt = "menu,menuone",
	},

	window = {
		completion = {
			side_padding = 0,
			winhighlight = "Normal:CmpPmenu,CursorLine:PmenuSel,Search:PmenuSel",
			scrollbar = true,
			border = border "CmpDocBorder",
		},
		documentation = {
			border = border "CmpDocBorder",
			winhighlight = "Normal:CmpDoc",
		},
	},
	snippet = {
		expand = function(args)
			require("luasnip").lsp_expand(args.body)
		end,
	},

	-- formatting = formatting_style,
	formatting = {
		format = function(_, vim_item)
			vim_item.kind = icons[vim_item.kind] .. " " .. vim_item.kind or vim_item.kind
			return vim_item
		end,
	},
	mapping = {
		["<C-p>"] = cmp.mapping.select_prev_item(),
		["<C-n>"] = cmp.mapping.select_next_item(),
		["<C-d>"] = cmp.mapping.scroll_docs(-4),
		["<C-f>"] = cmp.mapping.scroll_docs(4),
		["<C-Space>"] = cmp.mapping.complete(),
		["<C-e>"] = cmp.mapping.close(),
		["<CR>"] = cmp.mapping.confirm {
			behavior = cmp.ConfirmBehavior.Insert,
			select = true,
		},
		["<Tab>"] = cmp.mapping(function(fallback)
			if cmp.visible() then
				cmp.select_next_item()
			elseif require("luasnip").expand_or_jumpable() then
				vim.fn.feedkeys(
					vim.api.nvim_replace_termcodes("<Plug>luasnip-expand-or-jump", true, true, true),
					"")
			else
				fallback()
			end
		end, {
			"i",
			"s",
		}),
		["<S-Tab>"] = cmp.mapping(function(fallback)
			if cmp.visible() then
				cmp.select_prev_item()
			elseif require("luasnip").jumpable(-1) then
				vim.fn.feedkeys(
					vim.api.nvim_replace_termcodes("<Plug>luasnip-jump-prev", true, true, true), "")
			else
				fallback()
			end
		end, {
			"i",
			"s",
		}),
	},

	sources = {
		{ name = "nvim_lsp" },
		{ name = "luasnip" },
		{ name = "buffer" },
		{ name = "nvim_lua" },
		{ name = "path" },
	},
	{
		{ name = 'buffer' },
	},
}
require("cmp").setup(options)

Description
Markdown is not displayed correctly

Steps to reproduce
just use the plugin
Expected behavior
instead of seeing the markdown it should be formatted
Actual behavior
it is not
Additional context
No response

i know this is not a bug but its the only issue template

@FormalSnake this will be possible once https://github.com/neovim/neovim/pull/25073 goes in.

Nice! What a coincidence lol

The https://github.com/neovim/neovim/pull/25073 is merged into master, can we expect that nvim-cmp docs will be the same as neovim core hover soon?
@MariaSolOs  Thank you for https://github.com/neovim/neovim/pull/25073

This is great!

Alright here's the thing: I had initially envisioned https://github.com/neovim/neovim/pull/25073 to include the public API for the new LSP markdown methods, but because that will involve a larger refactor tracked by https://github.com/neovim/neovim/issues/25272, this will happen in the future. In the meantime, here's a workaround I have in my dotfiles that's inspired by what Noice does.
DISCLAIMER: You shouldn't patch plugins like this or use private (prefixed by _) methods in Neovim. This will very likely cause your configuration to break and you won't be able to blame anyone about it except for yourself, so use at your own risk.
Still here? Okay here's the code.
--- HACK: Override `vim.lsp.util.stylize_markdown` to use Treesitter.
---@param bufnr integer
---@param contents string[]
---@param opts table
---@return string[]
---@diagnostic disable-next-line: duplicate-set-field
vim.lsp.util.stylize_markdown = function(bufnr, contents, opts)
    contents = vim.lsp.util._normalize_markdown(contents, {
        width = vim.lsp.util._make_floating_popup_size(contents, opts),
    })
    vim.bo[bufnr].filetype = 'markdown'
    vim.treesitter.start(bufnr)
    vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, contents)

    return contents
end

I tried it and it looks great, but how do I scroll in the docs without mouse 😅

Mappings in the minimal config from your issue description set bindings to scroll docs:
		["<C-d>"] = cmp.mapping.scroll_docs(-4),
		["<C-f>"] = cmp.mapping.scroll_docs(4),

This is particularly important for documentations that make frequent use of   since that can make docs pretty tough to read when they don't get rendered.

Alright here's the thing: I had initially envisioned neovim/neovim#25073 to include the public API for the new LSP markdown methods, but because that will involve a larger refactor tracked by neovim/neovim#25272, this will happen in the future. In the meantime, here's a workaround I have in my dotfiles that's inspired by what Noice does.
DISCLAIMER: You shouldn't patch plugins like this or use private (prefixed by _) methods in Neovim. This will very likely cause your configuration to break and you won't be able to blame anyone about it except for yourself, so use at your own risk.
Still here? Okay here's the code.
--- HACK: Override `vim.lsp.util.stylize_markdown` to use Treesitter.
---@param bufnr integer
---@param contents string[]
---@param opts table
---@return string[]
---@diagnostic disable-next-line: duplicate-set-field
vim.lsp.util.stylize_markdown = function(bufnr, contents, opts)
    contents = vim.lsp.util._normalize_markdown(contents, {
        width = vim.lsp.util._make_floating_popup_size(contents, opts),
    })
    vim.bo[bufnr].filetype = 'markdown'
    vim.treesitter.start(bufnr)
    vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, contents)

    return contents
end

I have extra enhancements in my (publicly available) configuration, but I'll leave that as an exercise for the reader to figure out/find.

A less hacky workaround. Change vim.lsp.util.stylize_markdown to a local function:
local stylize_markdown = function(bufnr, contents, opts)
    contents = vim.lsp.util._normalize_markdown(contents, {
        width = vim.lsp.util._make_floating_popup_size(contents, opts),
    })
...

And call it here instead:
https://github.com/hrsh7th/nvim-cmp/blob/29fb4854573355792df9e156cb779f0d31308796/lua/cmp/view/docs_view.lua#L64


Allow one to extend Draftail for p and br elements

The converter rules for p and br elements are currently not taken into account when defining a new feature in order to extend the Draftail Editor. Some rules are added by Wagtail for those elements before adding features rules. As they only match on the tag name, they always take precedence.
This pull request moves the addition of the default rules for p and br after features ones. Thus it's possible to extend Draftail and set a class on a p element for example.
Let me know if it's a desired behavior to prevent such extensions. Also, let me know if I should try to add some tests for that... It's my first contribution, any feedback to improve myself is welcome! Thanks.

Thanks @jeromelebleu! Great to see people pushing the limits of the new rich text features :-)
I don't think we should assume that HTMLRuleset will always match rules in the order that they were defined. When I implemented it, I deliberately left the order of precedence unspecified, since there was no immediate need for it, and I didn't want to make the code more complicated than necessary... https://github.com/wagtail/wagtail/blob/0e19076b1c587de2aadb22935825a60a9f6c142b/wagtail/admin/rich_text/converters/html_ruleset.py#L80-L85
Now that there is a need for a well-defined order of precedence, it probably makes sense to implement the ordering from CSS, so that a rule with a name + attribute has priority over just a name. This way, the fix would just exist in html_ruleset.py (with a new test in /wagtail/admin/tests/test_html_ruleset.py to make sure that the precedence rules are working as intended), and there'd be no need to reorder things in html_to_contentstate.py.

With pleasure! And it is, regarding the facilities that Wagtail offers, all this work, the code, the documentation... and even your detailed answer!

Now that there is a need for a well-defined order of precedence, it probably makes sense to implement the ordering from CSS, so that a rule with a name + attribute has priority over just a name.

It seems to be much better - as far as I know. It makes more sense for me to use the specificity of the selector for the order of precedence. If I understand correctly and with current rules types, the order would be - from higher precedence to lower:

element with exact attribute
element with attribute
element

Is it right? Another nice enhancement would be to add the other attribute selectors but I guess it's for another request!
Just to go deeper in the implementation, how would you handle the case when several rules of the same precedence - e.g. element - are set for an element? Does the addition order will influence in this case?

It looks like CSS treats "element with attribute" and "element with exact attribute" with the same specificity, so we should probably do the same here. If multiple rules with the same precedence match, I think it's fine to leave it unspecified which one will be returned. The only really important thing here is that element+attribute matches above element only, so no need to implement behaviour we aren't using.

I think that giving at least precedence to more specific rules - e.g. element with attribute and exact attribute - will ease the Draftail extension. As it is the case here for p element, we can expect than adding a specific rule - i.e. p[class="lead"] - will be taking into account. Unfortunately, another one is already defined for the p element before our rule and take the precedence. It could also allow one to define a catch-all for an element, if no other more specific rule matches - as it could be the case here for the p element.
I was asking about multiple rules with the same precedence since I think that one solution could be to mix CSS specificity and Django app definition order. Thus, a rule for an element with an attribute and an exact attribute will have precedence over a rule for an element only. Then, if multiple rules are defined, the Django app definition order takes over. What do you think about that?
 Let me know if I could help for something!

@thibaudcolas I think CSS precedence rules are a good fit for what needs to be done here. We're putting together a ruleset to say "when you encounter an HTML element that matches specification X, it becomes contentstate entity Y", and those rules are fed in from disparate places (wagtaildocs, wagtailimages etc) depending on the currently active feature list and INSTALLED_APPS.
CSS selectors are a good way of dealing with this because they allow us to represent the rules as a flat list, rather than an arbitrarily complex decision tree ("this is an  element. Does it have a linktype attribute? If so, look it up in our dictionary of known link types..."). When I came up with this for 2.0, I was as surprised as anyone to realise that writing (a tiny subset of) a CSS engine was the missing piece of the rich text puzzle :-) I did search PyPI for suitable libraries at the time, but didn't find anything.
When all these rules were defined within the Wagtail codebase, it was easy enough to fudge the selectors so that they didn't overlap: for example, an external link is defined as a[href] rather than just a, to fully distinguish it from the  rules regardless of the order the tests happen in. Once user code and third-party libraries start defining their own selectors, it naturally becomes a lot harder to avoid collisions between rules - at that point, resolving those collisions through CSS precedence makes a lot of sense, as it will tend to pick the "right" rule automatically rather than relying on the user to arrange INSTALLED_APPS in a certain way.
I share your concerns about keeping a separation between the stored and rendered version of rich text.
 feels a bit too much like 'presentational' HTML to me, and not something you really want to have 'baked into' the database content, as it's entirely possible that a future iteration of your site might . (Obviously,
 is far better in this regard than
... :-) ) Intuitively, I'd feel more comfortable if we used an invented element like <lead-para> in the database representation, to make it explicit that this is an 'idealised' semantic version of the content rather than a renderable one. However:

we don't currently have the logic in place to rewrite wrapper elements at front-end rendering time (since you need to find the corresponding closing tag, and that's too hard to do in regexps...)
the database representation of rich text is deliberately kept somewhat close to real HTML so that the final front-end conversion step is as efficient as possible. In this case there's no strong reason to deviate from real HTML, so storing
 directly is acceptable in the interests of performance.

@gasman thank you for taking the time to explain your reasoning further 🙂. I see why it's compelling to use CSS-like selectors for this. I'm a bit worried that the precedence will not be very clear when two selectors have the exact same specificity (say a[href] and a[linktype] on a link that has both attributes), but hopefully this is rare enough and simple enough to notice that it's a non-issue. Generally i find it quite hard to visualise how many conflicts there could be in practice, since as you said this will vary both based on what's installed and also what's activated in a given field.
For the separation of concerns, in my opinion the better semantics of something like <lead-para> is reason enough to introduce additional processing at the (hopefully low) cost of performance and complexity. For complexity, I've never seen that code so I'm a poor judge of the actual effort. For performance, my optimism is because in practice rich text isn't "rich" enough that such processing would be costly. I would expect custom formats like lead-para to only make a tiny portion of the rich text content of a site (see for example https://github.com/springload/draftjs_exporter/pull/89#issue-172086587), to compare to processing of say links that's most likely just as costly.
Anyway, this is all beyond the scope of this one PR 🙂

Have now implemented the proposed fix - enforcing CSS precedence rules - in #4926.


IA-1803 Convert UserOrgUnitRestriction to typescript

This is displayed in the Instance page to show that the users can only see submissions on certain org units

Corrected the import , updated with master, created a jira ticket  and linked it to the PR


Chip 0510 Animation Request

Chip ID
0510
Sample

Additional information
Left & right should move simultaneously.

Animation has been pushed


[File share] Windows explorer not listing files in folder after azcopy remove with exclude-pattern

Which version of the AzCopy was used?
Note: The version is visible when running AzCopy without any argument
amd64 10.3.4
Which platform are you using? (ex: Windows, Mac, Linux)
Windows
What command did you run?
Note: Please remove the SAS to avoid exposing your credentials. If you cannot remember the exact command, please retrieve it from the beginning of the log file.
azcopy remove "https://[storagename].file.core.windows.net/produksjon/8007_Atlant/Passeringstranser/Innlest?[SAS]" --recursive=true --exclude-pattern="tr202003*;tr202002*"
What problem was encountered?
after deleting everything except files starting with the exclude-pattern, the folder looks empty in file explorer (Windows)
even powershell get-childitem gives error on listing content
even tried to restart my computer without any luck.
How can we reproduce the problem in the simplest way?
the folder contained about 270 000 files before I started the azcopy remove, and it seems to only be a problem when the folder contains massive amounts of files.
try running the same command on a folder/directory with high number of files.
Have you found a mitigation/solution?
azcopy list displays a list of the folders content, but this is not a solution, just a confirmation that the files still are there.. (roughly 68 000 files)
this list also contains files created after the azcopy remove command completed, meaning not even new files gets listed in windows explorer.
also "storage explorer (preview)" lists the files after loading a while.

Can I make sure I understand correctly:

For files that matched the exclude pattern, you know that AzCopy did NOT delete them. Correct? (Because you can see them in Storage Explorer).
But you can't see then in Windows Explorer, when you look at the file share.

Is that right?

If that is right, it sounds like a File Share/Windows explorer issue.  I don't know what might cause that, so I have to fall back to "Support 101": have you tried rebooting the Windows machine that you are running Windows Explorer on?

Can I make sure I understand correctly:

For files that matched the exclude pattern, you know that AzCopy did NOT delete them. Correct? (Because you can see them in Storage Explorer).
But you can't see then in Windows Explorer, when you look at the file share.

Is that right?

That's correct, azcopy did not delete them. I can see them in Storage Explorer and with azcopy list
The files are not visible to anyone with access through unc path.
The kicker here is that when someone tries to open the folder in windows explorer, it starts loading for a while (like there is too many files to list at once) but then it just ends up showing an empty folder.

I have tried rebooting my Windows machine which did not change anything. (still empty and still loading for a while before showing contents)

Next thing to investigate then, is whether ACLs (security permissions) are preventing it from showing up.  Are you able to figure out what the full path name of one of the files would be, as seen from Windows Explorer (if you could see it)?  If so, try a test on that machine: try using robocopy to copy the file to somewhere else (e.g. onto the machine's temp drive).  Run robocopy from an admin command prompt, and specify its backup mode (which I think is /b).  That can help it to see files that you can't normally see. If that works, then you have a permissions issue.
If that fails, I'm out of ideas, and this will be a question for the Azure Files team.  After you try the above, let me know if you'd like me to forward this on to them.

robocopy \folder\path C:\temp [filename from storage explorer]
worked just fine, even without the backup mode.
so there seems to be some kind of permission issue, but how do I go about to fix this on a azure file share given that this use access keys instead of user/group specific access management like regular fileservers?

I don't know. I'll see if I can get someone from the File Shares team to take a look.

I'm going to close this issue (the AzCopy issue) now, since it appears to be, and is being handled as, an Azure Files issue, as per Leslie's request for a email.


Special strings inside data modify are not parsed

When using data modify on for example a command block, the command string is not parsed or interpreted like it usually happens, despite the tooltip recognizing the key as a command string.

This also affects blocks with json data, or things like the structure of a structure block

Duplicate of #400.

Duplicate of #400.


F-Droid build failed

> Task :app:lintVitalRelease FAILED
/builds/2/fdroiddata/build/ch.abertschi.adfree/app/build.gradle:10: Error: Google Play requires that apps target API level 30 or higher.
 [ExpiredTargetSdkVersion]
        targetSdkVersion 27
        ~~~~~~~~~~~~~~~~~~~
   Explanation for issues of type "ExpiredTargetSdkVersion":
   As of the second half of 2018, Google Play requires that new apps and app
   updates target API level 26 or higher.
   Configuring your app to target a recent API level ensures that users
   benefit from significant security and performance improvements, while still
   allowing your app to run on older Android versions (down to the
   minSdkVersion).
   To update your targetSdkVersion, follow the steps from "Meeting Google Play
   requirements for target API level",
   https://developer.android.com/distribute/best-practices/develop/target-sdk.
   html
   https://support.google.com/googleplay/android-developer/answer/113469#targetsdk
   https://developer.android.com/distribute/best-practices/develop/target-sdk.html
1 errors, 0 warnings
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:lintVitalRelease'.
> Lint found fatal errors while assembling a release target.

  Fix the issues identified by lint, or create a baseline to see only new errors:

android {
lint {
baseline = file("lint-baseline.xml")
}
}

For more details, see https://developer.android.com/studio/write/lint#snapshot

Could you please take a look? Thanks!

/close this https://gitlab.com/fdroid/fdroiddata/-/commit/71c434afb4bb71f18a436465046d4695e5ad5738

thanks for the ping. I added the fix :+1:

https://github.com/abertschi/ad-free/commit/95e3723f7136a63979133d7c328c989794052d31

Thanks!

Done https://gitlab.com/fdroid/fdroiddata/-/commit/2db9f5463b37619b18f65935c28a2448e3e27890

thanks


Race condition but only in chromatic?

So far no issues running storybook locally via start-storybook,
but seeing a race condition when building storybook for chromatic. Looks like The interceptor gets loaded after the story tried to access apis.
Here is my current setup
    "@storybook/vue3": "^6.4.20",
    "@storybook/builder-vite": "0.1.22",
    "msw": "^0.39.2",
    "msw-storybook-addon": "^1.6.1",
    "chromatic": "^6.5.3"

And in my preview.js
import { handlers } from '../mocks/handlers'

initialize()

export const decorators = [mswDecorator]

export const parameters = {
  msw: {
    handlers,
  },
}

handlers is an array of RestHandler endpoints
When loading the built story:

Just to see i also tried loading msw into the parameters of the individual story, with no luck.

Building stories, and serving locally works, it's just an issue with chromatic from what I can tell. Perhaps i should post this issue over there, if the above code looks fine?

I resolved this by upgrading vite from 2.8.6 to 2.9.1.


Question regarding the use of onRowsDelete.

Hi, I have a question regarding the use of onRowsDelete.
I want to use the following function to remove items from the table, but I don't know if I am using it correctly combined with the option onRowsDelete Thanks in advance.
handleDeleteUser = (idToDelete) => {
axios.delete(https://jsonplaceholder.typicode.com/users/${idToDelete})
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
};
render() {
const options = {
onRowsDelete: (rowsDeleted) => {
const idsToDelete =  rowsDeleted.data.map(item => item.dataIndex)
idsToDelete.map(idToDelete => this.handleDeleteUser(idToDelete))
}
};

The way onRowsDelete works currently with async requests is a bit awkward. Internally, onRowsDelete  and the delete method are synchronous. This means that it won't be able to wait for a successful response from a promise before it executes. You would need to use it the other way around, by deleting first and then syncing it with your API. Essentially, it is, at the moment, only intended for UI behavior.
If you want to delete rows on the UI as a result of a successful response from an asynchronous request, then you would need to supply your own delete button and function via customToolbarSelect. There you could cause the table to wait for your success response before removing the data and updating the table. But bear in mind that means that you are responsible for handling the table's data state.
There is a PR up now which should help devs to integrate asynchronous requests with the onRowsDelete function if you want to keep up with progress on it: https://github.com/gregnb/mui-datatables/pull/835.

Okay Gabriel, I keep track of the onRowsDelete function progress.
You told me I should use it backwards, removing it first and then synchronizing it with its API.
translated that to my code what change should I make? or it is simply knowing that I should not expect a successful response from a promise before it is executed.

onRowsDelete: (rowsDeleted) => {
  const idsToDelete = rowsDeleted.data.map (item => item.dataIndex)
  this.handleDeleteUser (idsToDelete)
        console.log (idsToDelete);
}

If you're not concerned with making the request first and making the table deletions dependent on that, then the code you have should work as is. So that is correct, you should bear in mind that even if your request is unsuccessful, the rows will still show as deleted from the table, so you will have to re-render the table to show the correct data in that case.
The other option is to create your own delete function with customToolbarSelect.

Hi grabriel, so I must create my own delete button and incorporate it into the customToolbarSelect option?
I have seen some examples of how some developers use this property, but it is not very clear to me.

Correct, for now, the only solution is to add your own custom select toolbar as in the customize-toolbarselect example. Simple ex:
customToolbarSelect: (selectedRows, displayData, setSelectedRows) => (
  <div>
    <button onClick={() => handleMyDelete}>My Delete</button>
  </div>
),

Thank you very much Gabriel!
I have another question, related to the bar that is displayed when selecting a checkBox. Should I open another issue to ask the question or can you answer me here?
I would like to know if there is a way to stop showing this bar.
Thanks,

Well, since you asked it here, I'll answer it here!
There have been a number of issues opened about showing/hiding the bar including some PRs. My trouble is that out of all of them, I don't think I've ever heard a good answer to the UX question about what exactly is supposed to happen once it's removed, since that's the only way users currently have of acting on their selections. You can prevent any selections from being taken place at all with the options, but if you allow selections and remove the bar, I don't see how users will make any use of it. I'm open to hearing what the user story here would be.

Well, the buttons of my application I am showing them below the AppBreadcrumbs component. If I'm not going to use any button in the table, it doesn't make much sense to show the empty bar when checking a checkbox.

I'll take that into consideration. You can watch the other issues on this or the PR up for review to keep up-to-date on this issue.

Ok, thanks Gabriel !! Excuse my bothering.


Add a general tutorial for accessing and using ScanCode.io UI

Add basic UI steps to the existing tutorials or add a more general tutorial for accessing and using the UI.

Available at https://scancodeio.readthedocs.io/en/latest/user-interface.html#user-interface


refactor(fixer): add span to message

Description

Move autofix/ to fixer.rs.
Add span to Message such that we can pass the message sorting test case.
Remove fix method from LintContext.

The labels method return an iterator of label, how should we compare the two messages by this method?

The labels method return an iterator of LabelSpans, how should we compare the two messages by this method?

Find the minimum span.start I think. You have to get used to span being unique and sorted ;-)

Does our rule at least contain one span?

Yes, you can assume and use expect here.

The LabeledSpan doesn't has start, so I use offset and len to sort the messages.


Print/get DataFrame from RAISE displayed in Messages

Driver version
Latest
Redshift version
PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.44903
Client Operating System
WSL2/Win10
Python version
3.9
Problem description
To not save result into temp table I want to catch it on the fly but can't find best approach to achieve it. Didn't find and good method in redshift_connector and boto3.
It seems that Redshift doesn't support DO
I could query svl_stored_proc_messages but I don't want any in-the-middle steps...
Goal is to get dataFrame that would have data from Messages:

Python Driver trace logs

Reproduction code
Procedure:
CREATE OR REPLACE PROCEDURE public.record_example()
AS '
DECLARE
  rec RECORD;
BEGIN
  FOR rec IN SELECT * FROM public.event
  LOOP
    RAISE INFO ''eventid = %'', rec.eventid;
  END LOOP;
END;
'
LANGUAGE plpgsql;

Python code:
import redshift_connector

conn = redshift_connector.connect(
    host='xyz-cluster.abc.region.redshift.amazonaws.com',
    database='',
    user='',
    password=''
 )

cursor = conn.cursor()
cur = cursor.execute("CALL public.record_example();")

Hi @marcin2x4 , I am lacking some understanding of this issue and I am not entirely sure this is something that can be addressed by client tools like redshift-connector or boto3. Redshift client tools can only utilize the existing functionality of Redshift server. Is a UDF applicable to your use case?
If you can explain more about your use case I can try to assist further or route this request to the correct Redshift team, if needed.

@Brooke-white - I did find a workaround for this. Will post it soon for reference with explanation on 'why'.

@Brooke-white - goal was to capture data from stored procedure without table/temp table. Below are code samples I've managed to come up with. This works only on multi-node Redshift cluster.
CREATE OR REPLACE PROCEDURE schema.sp_data_on_fly(rs_out INOUT refcursor)
LANGUAGE plpgsql
AS $$
BEGIN
    OPEN rs_out FOR SELECT * FROM (SELECT...);
END;
$$

Once ready, these lines below with execute the code in synchronous manner.
cursor.execute("CALL reporting.sp_data_on_fly('mycursor');")
cursor.execute("FETCH ALL FROM mycursor;")


Remove duplicate "initialDelaySeconds" field

[X] Chart version not bumped (the versions are all bumped and released at the same time)
[] README.md updated with any new values or changes
[] Updated template tests in ${CHART}/tests/*.py
[] Updated integration tests in ${CHART}/examples/*/test/goss.yaml

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

Jenkins test this please

backported to 6.8, 7.9 and 7.x branches


Support for HELM deployment is strongly recommended

<EMAIL_ADDRESS>deployment related issues:

No some Helm files for helm deploy in kubernetes

Anything else we need to know:
What's the plan for support to helm?

helm用起来比代码里放一堆shell和py看起来不那么难闻


Feature for resizing images

Description of the new feature / enhancement
In the profiles for resizing images, you can choose the format of the new image.
Scenario when this would be used?
When you need to lighten a picture, you frequently need to change the format of the picture. JPG is more lighter than PNG.
Supporting information
No response

@quentindeca98 Image Resizer currently has a JPEG quality option in the settings. Does this work for you? /needinfo

They dont work for me. When I resize PNG with the same parameters than you the pictures still in PNG

Image Resizer is designed to do exactly what it says. It is explicitly not designed to be a file type converter.


Determine which npm soap package to use

For accessing an third party site for data, we will need to make soap calls.  The purpose of this issue to run some tests with various npm packages for soap and determine which one serves our needs.

this is done.


[TB] Dark mode issues

Problem/Concern
There are sections that have issues with dark mode.  Some of these are likely because we are no longer keying off of the .darkmode classname, but rather data-mode="dark" and data-mode="light".  A lot of black on black text.
These components are having issues with dark mode:

Tabs secondary
Tabs primary
Switch
Sliders
Radio Buttons
Lists - Single, Double, Triple
Menus - are dropdown menus supposed to be white or dark?
Hero
Dropdowns - are dropdown menus supposed to be white or dark?
Divider
Chips
Checkboxes
Cards - can't see radio buttons on all of these card-related pages
Avatars with icons
App Bar - radio buttons
Accordions - are the accordions supposed to be white?

Shadows - they are all broken
Colors

Hotlinks - Dark Hotlinks don't match RGB values
State Colors - not using --dm-success, --dm-* for the colors
Gradients - not using --dm-* gradients
Backgrounds - not using --dm-* backgrounds
Core Colors - white, white-half and black-half are probably all wrong.  Maybe others.

Atoms

Color Palette and Color Theme atoms have dark mode sections which aren't currently working.
Shadow->Elevation Settings dark mode section not working
State Settings
Focus States
Hotlinks
Input Background

Proposed Solution

In latest code there are still issues with:
Components:
Radio Buttons component
Divider component - vertical divider very faint in dark mode
Chips - can't see close buttons, very dark on a dark background
Checkboxes component
Shadows category - glow, elevations components still have problems
Colors category - hotlinks component - dark hotlinks colors seem wrong, don't match
Colors category - Core Colors component - white half and black half colors seem incorrect
Atoms:
Color Palette - dark mode colors and light mode colors sections need separation
Shadows Atoms - Elevation Settings - styling seems correct, but so hard to see the sample area border that it is difficult to see the subtle shifts for each elevation level
Hotlinks - dark mode colors and light mode colors sections need separation
Input Background - dark mode colors and light mode colors sections need separation, input disabled text is very dark and hard to see

@lwnoble to review.  She believes may already be resolved.

Opened https://github.com/finos/a11y-theme-builder/issues/743 as a good first issue to verify


Container Object update

updated process in container to emtpy queue if exit_code is equal to 0
removed the automatic transcribing of a container if it is configured with syslog
the container object will begin a process only when a container is started and for a minimal time period
updated tests to reflect updated code
updated config.py to allow for exposed_ports in the manifest
removed return of the response on error

[Current coverage][cc-pull] is 52.65%

Merging [#36][cc-pull] into [dev][cc-base-branch] will decrease coverage by 0.03%

@@                dev        #36   diff @@
==========================================
  Files            33         33
  Lines          3857       3863     +6
  Methods           0          0
  Messages          0          0
  Branches        907        910     +3
==========================================
+ Hits           2032       2034     +2
- Misses         1515       1519     +4
  Partials        310        310

Powered by Codecov. Last updated by [747b047...e414a2a][cc-compare]
[cc-base-branch]: https://codecov.io/gh/TuneOSS/freight_forwarder/branch/dev?src=pr
[cc-compare]: https://codecov.io/gh/TuneOSS/freight_forwarder/compare/747b047003cb5af280f15aa2f4f6e5fa798056a2...e414a2ab37beb843681c08c10bfba6158563786c
[cc-pull]: https://codecov.io/gh/TuneOSS/freight_forwarder/pull/36?src=pr

What are you trying to solve with this commit?


consider parsing cofactors from uniprot

Uniprot has also data for cofactors. They can be automatically fetched from databases to be added to the simulation and influencing the chemical kinetics.

I don't feel its feature. It's neiher required nor feasible at the moment.


Could not resolve "#imports"

When following the getting started guide from the docs, I'm getting the following error:
✘ [ERROR] Could not resolve "#imports"

    node_modules/trpc-nuxt/dist/client/index.mjs:22:93:
      22 │ import { getCurrentInstance, onScopeDispose, useAsyncData, toValue, ref, isRef, toRaw } from "#imports";
         ╵                                                                                ~~~~~~~~~~

  You can mark the path "#imports" as external to exclude it from the bundle, which will remove this
  error and leave the unresolved path in the bundle.

Related: https://github.com/nuxt/nuxt/issues/28562
Reproduction: https://stackblitz.com/edit/github-rakia6

My bad on this one. I missed basically the first thing on the install page...

Yeah @felix-dolderer  😆  tbh it would be nice if we could just add trpc-nuxt to modules array, but can't justify how trpc-nuxt can be a module with all this custom configuration in both client and server

@wobsoriano Makes sense.
It may be worth it to copy the nuxtConfig section from the install page to the usage sections of the docs as well, in case I'm not the only one who overlooked that part and went straight to the usage.


Query in oracle too slow

When performing a select on some tables I realized that the first time is really slow. Using the "Query Manager" I checked that there is a query that is executed before the select I made, and this is extremely slow. (In my case it's taking about 30 seconds to bring 33 records)
SELECT C.TABLE_NAME,
C.CONSTRAINT_NAME,
C.CONSTRAINT_TYPE,
C.STATUS,
C.R_OWNER,
C.R_CONSTRAINT_NAME,
C.TABLE_NAME AS R_TABLE_NAME,
C.DELETE_RULE,
COL.COLUMN_NAME,
COL.POSITION
FROM ALL_CONSTRAINTS C,
ALL_CONS_COLUMNS COL,
ALL_CONSTRAINTS RC
WHERE C.CONSTRAINT_TYPE = 'R'
AND   C.OWNER = 'OWNER'
AND   C.OWNER = COL.OWNER
AND   C.CONSTRAINT_NAME = COL.CONSTRAINT_NAME
AND   RC.OWNER = C.R_OWNER
AND   RC.CONSTRAINT_NAME = C.R_CONSTRAINT_NAME
AND   C.TABLE_NAME = 'TABLE'
ORDER BY C.CONSTRAINT_NAME,
COL.POSITION
The following is the result of the "execution plan":

But by changing the query and taking out the table ALL_CONSTRAINTS that is being used twice.
SELECT C.TABLE_NAME,
C.CONSTRAINT_NAME,
C.CONSTRAINT_TYPE,
C.STATUS,
C.R_OWNER,
C.R_CONSTRAINT_NAME,
C.TABLE_NAME AS R_TABLE_NAME,
C.DELETE_RULE,
COL.COLUMN_NAME,
COL.POSITION
FROM ALL_CONSTRAINTS C,
ALL_CONS_COLUMNS COL
WHERE C.CONSTRAINT_TYPE = 'R'
AND   C.OWNER = 'OWNER'
AND   C.OWNER = COL.OWNER
AND   C.CONSTRAINT_NAME = COL.CONSTRAINT_NAME
AND   C.TABLE_NAME = 'TABLE'
ORDER BY C.CONSTRAINT_NAME,
COL.POSITION
That way the result came in only 1 second and the result of the "execution plan" was this:

I believe that with this change the performance would improve a lot, I hope to be helping.

Well, this second ALL_CONSTRAINTS join is there for a reason (it is in the foreign keys reading procedure).
Oracle metadata reading performance issue are very database-dependent (e.g. on our test db this query works less than 1 second).
In any case, on some Oracle server enabling following options increases performance significantly, could you try it:

I've seen that it looks for the foreign keys, that's why the query is so slow in my database because there are many tables referencing it, so I made that suggestion.
In my case even marking these optimization options, it still runs this select in all_constraints twice so it does not help, the first run takes at least 30 seconds, after that it gets great.
Here in the company we use Oracle 10g.
Would it not be possible to review the reasons for this use?

Hello @luizplago  !
Can you execute this query on your environment and give us execution plan and approx execution time
SELECT
c.TABLE_NAME,
c.CONSTRAINT_NAME,
c.CONSTRAINT_TYPE,
c.STATUS,
c.R_OWNER,
c.R_CONSTRAINT_NAME,
(SELECT rc.TABLE_NAME FROM DBA_CONSTRAINTS rc WHERE rc.OWNER = c.r_OWNER AND rc.CONSTRAINT_NAME = c.R_CONSTRAINT_NAME) AS R_TABLE_NAME,
c.DELETE_RULE,
(SELECT col.COLUMN_NAME FROM DBA_CONS_COLUMNS col WHERE col.OWNER ='OWNER' AND col.CONSTRAINT_NAME = c.CONSTRAINT_NAME) COLUMN_NAME,
(SELECT col.POSITION FROM DBA_CONS_COLUMNS col WHERE col.OWNER ='OWNER' AND col.CONSTRAINT_NAME = c.CONSTRAINT_NAME) POSITION
FROM
DBA_CONSTRAINTS c
WHERE
c.CONSTRAINT_TYPE = 'R'
AND c.OWNER = 'OWNER'
AND c.TABLE_NAME = 'TABLE'
If it possible can you use real TABLE and OWNER name

Hello @AndrewKhitrin I saw your query here, it did not work because the result was multiple lines, but I understood your idea. I'll talk to some friends who understand query optimization well here too. Below is the result of the original consultation so you have an idea of what I said about the multiple lines.
The last column (POSITION) of the lines that I selected will have values 1 and 2.

Hello @luizplago !
This query just for check some ideas on your specific environments. Can you test this one (with mult. columns) ?

SELECT
c.TABLE_NAME,
c.CONSTRAINT_NAME,
c.CONSTRAINT_TYPE,
c.STATUS,
c.R_OWNER,
c.R_CONSTRAINT_NAME,
(SELECT rc.TABLE_NAME FROM DBA_CONSTRAINTS rc WHERE rc.OWNER = c.r_OWNER AND rc.CONSTRAINT_NAME = c.R_CONSTRAINT_NAME) AS R_TABLE_NAME,
c.DELETE_RULE,
(
SELECT LTRIM(MAX(SYS_CONNECT_BY_PATH(cname || ':' || p,','))    KEEP (DENSE_RANK LAST ORDER BY curr),',')
FROM   (SELECT
col.CONSTRAINT_NAME cn,col.POSITION p,col.COLUMN_NAME cname,
ROW_NUMBER() OVER (PARTITION BY col.CONSTRAINT_NAME ORDER BY col.POSITION) AS curr,
ROW_NUMBER() OVER (PARTITION BY col.CONSTRAINT_NAME ORDER BY col.POSITION) -1 AS prev
FROM   DBA_CONS_COLUMNS col
WHERE  col.OWNER ='OWNER' AND col.TABLE_NAME = 'TABLE' AND col.CONSTRAINT_NAME = c.CONSTRAINT_NAME
)	GROUP BY cn	CONNECT BY prev = PRIOR curr AND cn = PRIOR cn START WITH curr = 1
) COLUMN_NAMES_NUMS
FROM
DBA_CONSTRAINTS c
WHERE
c.CONSTRAINT_TYPE = 'R'
AND c.OWNER = 'OWNER'
AND c.TABLE_NAME = 'TABLE'

Can you check this one with  real TABLE and OWNER name ?

Hello @AndrewKhitrin this new query went very well!

The execution plan of the old query is (running in: 35 seconds):

Hello @AndrewKhitrin the query was great, but I did not realize that the results were different. The original query returns 33 records while the new one returns 30.

@luizplago All "multicolumn" constraints in new query will presents in one row in column COLUMN_NAMES_NUMS. Propably this is the reason why you see 30 rows instead 33

Dude, you saved my life! It worked perfectly!

Thanks !

@luizplago Hi !
Can you downlad EA version here - https://dbeaver.io/files/ea/ and check it on your environment.
Thanks.

I downloaded the version, but I could not use the improvement. What do I need to do to activate it?

Its already bundled, just look  on query speed in "Query Manager",  anything changed ?

I've tried checking and unchecking the performance options "Use RULE hint for system catalog queries." and "use metadata queries optimizer", but the original query continues.

@luizplago I've re-published EA version, could you test it one more time?

I'm not getting. Am I doing something wrong?

The query you posted is constraints reading query. Foreign keys reading query was changed.

dude, I did not find your change.

@luizplago Could you test how FK reading query looks like? Just expand Foreign Keys folder and see query in Query Manager view (enable metadata queries view).
I've tested latest EA and on my machine it looks like this:
SELECT
    c.TABLE_NAME,
    c.CONSTRAINT_NAME,
    c.CONSTRAINT_TYPE,
    c.STATUS,
    c.R_OWNER,
    c.R_CONSTRAINT_NAME,
    (SELECT rc.TABLE_NAME FROM ALL_CONSTRAINTS rc WHERE rc.OWNER = c.r_OWNER AND rc.CONSTRAINT_NAME = c.R_CONSTRAINT_NAME) AS R_TABLE_NAME,
    c.DELETE_RULE,
    (
        SELECT LTRIM(MAX(SYS_CONNECT_BY_PATH(cname || ':' || p,','))    KEEP (DENSE_RANK LAST ORDER BY curr),',')
        FROM   (SELECT
                       col.CONSTRAINT_NAME cn,col.POSITION p,col.COLUMN_NAME cname,
                       ROW_NUMBER() OVER (PARTITION BY col.CONSTRAINT_NAME ORDER BY col.POSITION) AS curr,
                       ROW_NUMBER() OVER (PARTITION BY col.CONSTRAINT_NAME ORDER BY col.POSITION) -1 AS prev
                FROM   ALL_CONS_COLUMNS col
                WHERE  col.OWNER ='HR' AND col.TABLE_NAME = 'ACCOUNTS' AND col.CONSTRAINT_NAME = c.CONSTRAINT_NAME
                )   GROUP BY cn CONNECT BY prev = PRIOR curr AND cn = PRIOR cn START WITH curr = 1
        ) COLUMN_NAMES_NUMS
FROM
    ALL_CONSTRAINTS c
WHERE
    c.CONSTRAINT_TYPE = 'R'
    AND c.OWNER = 'HR'
    AND c.TABLE_NAME = 'ACCOUNTS'

In the version available I could not see the changes ... I see the queries in the query manager, but it remains the original. if I'm doing something wrong please let me know how I can do it.

Hello @luizplago can you please elaborate step by step what and how you execute query in EA DBeaver client, what metrics and results you get and evaluate.

The test I have done is pretty simple, I clean the query manager and run a simple query with a table that has many relationships.
So even with this version available the query that it stops and keeps running a good time (20-30 seconds) remains the original.

SELECT c.TABLE_NAME, c.CONSTRAINT_NAME, c.CONSTRAINT_TYPE, c.STATUS, c.R_OWNER, c.R_CONSTRAINT_NAME, rc.TABLE_NAME AS R_TABLE_NAME, c.DELETE_RULE, col.COLUMN_NAME, col.POSITION
FROM ALL_CONSTRAINTS c, ALL_CONS_COLUMNS col, ALL_CONSTRAINTS rc
WHERE c.CONSTRAINT_TYPE = 'R'
AND c.OWNER = 'CM'
AND c.OWNER = col.OWNER
AND c.CONSTRAINT_NAME = col.CONSTRAINT_NAME
AND rc.OWNER = c.r_OWNER
AND rc.CONSTRAINT_NAME = c.R_CONSTRAINT_NAME
AND c.TABLE_NAME = 'FUNCIONARIO'
ORDER BY c.CONSTRAINT_NAME, col.POSITION

In this execution I have an error with the query below, because here the sys user is not the owner of these views

SELECT 1 FROM SYS.ALL_TAB_COLS WHERE 1<>1

Please check it in 6.0.5 release.
Regular constraints reading queries were also updated

Guys, I found the incredible improvement I know she certainly improved the performance a lot, but I do not understand why it does not work in my environment. Here in my environment dbeaver 6.0.5 continues to use the original query.


Improvements to client auth error logging

The main point of this PR is to output a useful error in the server console whenever an error occurs during the client auth flow.
There are quite a few different things that can be wrong. I've now got it so that there's a different error for:

client credentials missing
client credentials invalid
url mismatch

In the first two cases, the error sent to the client is just 'Access denied'. The nice error only appears on the server.
In the latter case we already have a much nicer error for the client.
Please note: I also added one other change to this whilst I was there - I made the localhost override only work for non-production blogs. I think that makes sense?
no issue

If client credentials are missing, or not valid, output a clear message in the server console
Still defaults to sending the 'access denied to url' error to the frontend

Removed my derpy switch back to localhost only being for production, and added a comment so I don't forget this again.


Export Decoder and Encoder for direct usage

In some cases Decoder/Encoder need to be used directly without wrapper functions. For example in our project we have custom format that consist of
binary with:

number
number
array
number
binary

and this structure can't be parsed or formed using regular functions, but it can be easily done by using Decoder/Encoder directly.

@gfx what do you think about it?

Codecov Report

Merging #45 into master will increase coverage by 0.02%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #45      +/-   ##
==========================================
+ Coverage   91.46%   91.48%   +0.02%
==========================================
  Files          14       14
  Lines         808      810       +2
  Branches      170      170
==========================================
+ Hits          739      741       +2
  Misses         49       49
  Partials       20       20

Impacted Files
Coverage Δ

src/index.ts
100% <100%> (ø)
: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 0e3f706...dd3ae57. Read the comment docs.

The reason why they are not exported is just their interfaces are not stable yet and there are no use cases suggested, but if you need them, it's time to export them.
LGTM

thanks!


Add shot chart

In the individual player page, look into adding a shot chart for the player.

Low priority at the moment.

This will probably not be implemented. Will keep open though in case I come across anything that may be of use.

Since I am working on a web based version of NBAreact, this idea might be implemented.

Thinking of doing this idea as a separate project rather than incorporating into NBAreact.

See my other project NBAshotchart.


Checksum invalid option when installing in Alpine

This line has a bug:
https://github.com/helm-unittest/helm-unittest/blob/fb66fab3001965a237e045398a8658a76032c344/install-binary.sh#L124
In alpine, sha256sum has no "-s" option.

Hello @cattapan,
Can you tell me which version of sha256sum you are using.
The alpine version I'm using for testing all contain the -s option.

Greetings,
@quintush

Right. that's an interesting one. we are using it from coreutils. That does not have -s option...


Add GCBallesteros/NotebookNavigator.nvim

Repo URL:
https://github.com/GCBallesteros/NotebookNavigator.nvim
Checklist:

[x] The plugin is specifically built for Neovim, or if it's a colorscheme, it supports treesitter syntax.
[x] The lines end with a .. This is to conform to awesome-list linting and requirements.
[x] The title of the pull request is Add/Update/Remove `username/repo`  (notice the backticks around `username/repo`) when adding a new plugin.
[x] The description doesn't mention that it's a Neovim plugin, it's obvious from the rest of the document. No mentions of the word plugin unless it's related to something else.
[x] The description doesn't contain emojis.
[x] Neovim is spelled as Neovim (not nvim, NeoVim or neovim), Vim is spelled as Vim (capitalized), Lua is spelled as Lua (capitalized), Tree-sitter is spelled as Tree-sitter.
[x] Acronyms should be fully capitalized, for example LSP, TS, YAML, etc.

PR #803 also looks to add NotebookNavigator to the list, however, the author of the latter has confirmed that he is unavailable to take care of the required changes at the moment. Please accept this PR in place lieu of #803.

Thanks for the PR!


[#78 issue] Added Bubble_Blast_Game

PR Description 📜
This pull request introduces the implementation of the Bubble Blast game, a fun and engaging interactive game for players of all ages. The purpose of this PR is to add this exciting game to our repository and make it available for users to enjoy.
Fixes # 78

Mark the task you have completed ✅

[ ✅] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[ ✅] I have performed a self-review of my own code or work.
[✅ ] I have commented my code, particularly in hard-to-understand areas[in js only].
[✅ ] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[✅ ] I have added screenshot for website preview in assets/images
[✅ ] I have added entries for my game in main README.md
[✅ ] I have added README.md in my folder
[ ✅] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @md-rosh02 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

@kunjgit plz check conflicts are resolved

@kunjgit  plz check conflicts are resolved

@kunjgit plz check conflicts are resolved🙏

can you tell me what conflicts to resolve?

@kunjgit bhai kya huva kab merge hoga ye reply to dediya karo yaar🙁🙁

Thank you  @md-rosh02 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀

Thank you ❤


Trim Select Text

Proposed changes
Fixes #3249.
Screenshots:
Code:
<option>
    Nachmittag
</option>

Before:

After:

Types of changes

[x] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to change).

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Line breaks and indentations were added automatically (husky).

Merged on https://github.com/materializecss/materialize/pull/100

Crazy. Thanks for the fork!


Build Package Updates

:pencil: Description

Don't create source-map-register file
Include lock file

:link: Related Issues

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Update ',' to '.' in iOS keyboard

Bug report via email:

I tried to use badger wallet app on my iPhone 7 with latest iOS 13 and I can’t send decimals units because the badger wallet app uses , instead of . like the iPhone keyboard uses.
I tried also on an Samsung S9 so on Android it works just fine because they use . and the keyboard as well so on Android you can send decimal units of a SLP token.
Thank you for you support in advance.

Odd, cannot recreate this on any of my own iOS devices.
Anyone else seeing this issue?  Perhaps it's in a language with different localization?  Will continue to investigate


error code

hi,
i have an issue concerning differences between version 1.0.1 and 2.0.0 of crest. in version 1.0.1 the ErrorHandler interface had a ResponseContext object as parameter where you could get all information from the originating request and the resulting response (including status code) from. in version 2.0.0 the parameters for ErrorHandler are the request and an exception. all information about the request is readily available but the exception only contains the message of the status code (e.g. "Unauthorized" for 401). is there any way to get the status code in the current version? if there is not, i would suggest to either add the response to the parameters or define a custom exception that at least contains the status code of the response.
regards,
peter

The interface for the ErrorHandler has changed as the handler is used to catch any exception ocurring, and that include exception occuring even before the request has been fired, thus the exception passed to the handler could be a non-http related exception.
In the case the exception is HTTP related, then the exception passed would be a instance of org.codegist.crest.io.RequestException. Sorry if that wasn't clear enough from the documentation!

But if you want to deal with HTTP response code, then I think the ResponseHandler is more suited

well i was not sure which one to use. i do want to handle the response (==> ResponseHandler) but when i use the ResponseHandler i have to deserialize the response "manually" (of course i use the jackson library, but i can't use the automatic deserialization feature of crest). so i thought, i use the ErrorHandler for exceptions and statuses != 200 and specify no ResponseHanlder in order for the automatic deserialization to work. please correct me, if that interpretation is wrong.

Well Response.deserialize() ensapsulate the deserialization process, in fact, if you look at the DefaultResponseDeserializer:
https://github.com/codegist/crest/blob/master/core/src/main/java/org/codegist/crest/handler/DefaultResponseHandler.java
You'll see that it only call response.deserialize()
As said previously, CRest will skip the ResponseHandler if the response status is >= 400.

i think i understand the concept now and know how to implement it correctly for my use case. i really appreciate your quick replies and sincerely thank you for your help! if i can contribute anything to your great work, just let me know.
regards,
peter


Fix debug warning

Try to fix all Debug Warnings

Some Variable Names are double used.
Changed in 0ac11b7


SMT v0.4 potential wishlist

Storage

[ ] For value store, store the values by key, rather than path. This will allow iterating over keys efficiently, as may be expected in Cosmos SDK store v1.
[ ] Store nodes as an n-ary tree using tiles, allow for more efficient updates to the tree.

Versioning and pruning

[ ] Enable the option to keep the historical versions of the tree.
[ ] Add pruning support (i.e. only keep X historical versions) using reference-counting and a "deletion pending" database.
[ ] Add rollback support using a journal.

Note: this would allow for O(1) reading of keys from the latest tree, but O(log(n)) for historical trees where n is the keys in the tree, unless versioning is also implemented for the value store. Note that IAVL's reads are always O(log(n)) anyway. Furthermore, rollbacks would be O(o) where o is the number of operations being rolled back (this is the same as Ethereum's state trie). We should understand Cosmos SDK store requirements for this.
Batching

[ ] Add support for batch writes/commit. (https://github.com/celestiaorg/smt/issues/13)

Documentation

[ ] Document storage layer architecture if tiling or pruning is added.
[ ] Document tree algorithms in more detail than current specs, or move specs here.

IMO batch writing is by far the most important of these features since it's critical for performance in all cases. The rest are more related to upstreaming into the Cosmos SDK or are still research questions. We could consider splitting these across a few releases instead of blocking on all of them.

Agreed, though I'm also not sure batching needs to be implemented in this repo, as it can be in the MapStore implementation. However, for pruning, some concept of a version will be needed which may be related to a commit function/batching.

Closing as new/pending information may invalidate this wishlist.


conversion of footstep system from 3x to 4x - broken

this is the first attempt at converting the footstep system, currently it is broken and will need some work to get working

this is the best i could get it for now, it is on par with the godot3 version and plays the default footstep audio
issues right now, it doesnt play the other audio files, maybe the pooling isnt working right...

This looks good to me and is equivalent to the 3.x version


Link to API reference of modal-ui-js navigates to 404 page

Describe the bug Link to API reference of modal-ui-js navigate to non existent page.
To Reproduce Steps to reproduce the behavior:

Go to wallet-selector page
Click on packeges
Click on modal-ui-js
Scroll down to [ API Reference | https://github.com/near/wallet-selector/tree/main/packages/modal-ui-js#api-reference]
Click on here
See error

Expected behavior Documentation of API and all the methods as for modal-ui package
Screenshots
Device (please complete the following information):

OS: macOS Monterey 12.6
Browser: Google Chrome 105.0.5195.125 (arm64)

@amirsaran3 thanks for solving that, but I still get the 404 page


Improve SLOMetricAbsent alert wait duration based on objective

Previously, Pyrra only took the objective's time window into account. However, there's a huge difference when it comes to burning 1% of error budget for a SLO with 90%,99%,99.5% objective.
The new AbsentDuration() function takes both the window and objective's target into account and based on that returns the duration in which 1% error budget would be burned, assuming that metrics absent is a 100% error rate.
This should improve the flakiness of the SLOMetricAbsent alert.
cc @brancz @ArthurSens @roidelapluie

I was just about to merge this now, but maybe we should have actually two of these as well.
One with a warning severity after the time for burning 1% of the error budget and then another one, has a severity critical after a 5% budget burn.
I'll update the PR before merging.

Approach sounds and looks good to me.


ci/build: bump pr_dependency-action to v0.5

@sreimers I guess we should use<EMAIL_ADDRESS>right?


MBTiles validation bypass option

This adds a --bypass-validation option to the CLI and JS interface to avoid the MBTiles migration stream & validation code paths.
cc @mapbox/maps-api

Thanks @ian29!


Test if reporting services report is runnable

Dear developers,
is there an aproach ready to just test a reporting services report for availability and if it's runnable?
Testing a dataset is possible as far as I know, but it could be that some other dataset within the report fails while the one you test is running. Having a more general approach would be nice.
However, I see that testing all datasets in a report at once would achieve the same result.
I'm just asking, this is no feature request from my point of view for now.
P.S. Thanks for the frequent updates! I'm closely following the development and using nbi intensively.
Edit: Perhaps it would be achieved when issue #40 is implemented in the future?
Cheers,
Tilo

Hi @FuegoArtificial
It depends by what you mean by a "report is runnable".
If I was requested to test a report, I'd like to test following steps:

The parameters are the expected parameters (None is missing, none is unexpected, correct types).
The report contains/links the expected datasets/linked-reports.
Each dataset used by my report behaves correctly (result returned is correct and performance)
My report correctly handles the datasets (presentation)

At the moment step 1, 2 and 4 are not covered by features. For step 3, you've this feature but it could be improved with #190
My understanding is that you want to test the whole report in one test where I prefer to have many tests but when one of them is failing I know excalty what's wrong.

I should add that I'm working on another project for the deployment of SSRS projects where I need to learn a lot about internals of this tool and it will be easier for me to provide good solutions.

You are right, I'm trying to test from a broad perspective which can be sufficient in some cases. For example if data structure changed, failing parameter or main data sets will be visible immediately. Maybe without instantly knowing which one, I know where to check. Especially, if I don't test for each parameter dataset.
If getting results from the report in general it would point out that the data structure in the data source is still valid.
For case 1 I built a template/solution to cover it. Although, it's not featured by nbi directly. Would you like to see that?
I'll check your other project soon and might be able to support you with ideas while working with ssrs since 2004. Thanks for the tip! :-)

Feel free to share your solution for parameters will surely save me some time.

Alright @Seddryck, I'm courious, what you think.
Workflow:

Deploy all reports to the report server into some (sub-)folder tree
Set all default parameters as required
Read the default parameters from the reporting services database with the query included in the system-under-test tag without the constraint towards one report
persist the values in an extra table (here [dbo].[ReportDefaultParameters] within the Nbi-Database)
run the GenBIL-script combined with the template to get a test for each report
run the test suite

template:
<test name="Check default parameters of report '$ReportName$'">
	$if(IgnoreReason)$<ignore>$IgnoreReason$</ignore>$endif$
	<description>Check default parameters of report '$ReportName$' to of folder 'WebNVA'</description>
	<edition author="$username$" created="$now$"/>
	<category>Default parameters</category>
	<system-under-test>
		<execution>
			<query connectionString="@ReportServer">
				<![CDATA[
				DECLARE @PathLike AS VARCHAR(Max)
SET @PathLike = '/%' -- set subpath if applicable

SELECT
	ReportName,
	ParameterName,
	Prompt,
	v.value ('.', 'VARCHAR(Max)') AS Value
FROM
(
SELECT
	Params.p.value('Name[1]','varchar(Max)') AS ParameterName,
	Params.p.value('Prompt[1]','varchar(Max)') AS ParameterLabel,
	DefaultValueXML = Params.p.query('DefaultValues/Value'),
    Params.p.value ('DataType[1]', 'VARCHAR(Max)') AS DataType,
	Params.p.value ('AllowBlank[1]', 'VARCHAR(50)') AS AllowBlank,
	Params.p.value ('Prompt[1]', 'VARCHAR(Max)') AS Prompt,
	Params.p.value ('Hidden[1]', 'VARCHAR(Max)') AS Hidden,
	tmp.Name AS ReportName,
	tmp.Path AS ReportPath,
	CASE tmp.Type
		WHEN 2 THEN 'Report'
		WHEN 4 THEN 'Linked Report'
	END AS ElementType

FROM
  (SELECT
		Name
		, Path
		, ReportParams = CONVERT(XML,Parameter)
		, Type
	FROM dbo.Catalog
	WHERE
	(Type = 4 -- linked Report
	Or
	Type = 2) -- Report
	AND
	Path like @PathLike) tmp
	CROSS APPLY ReportParams.nodes('(Parameters/Parameter)') AS Params(p)
WHERE NOT Params.p.value('Name[1]','varchar(Max)') IN ('ReportPath','ReportNumber')) tmp2
CROSS APPLY DefaultValueXML.nodes('Value') value(v)
WHERE ReportName = '$ReportName$'
				]]>
			</query>
		</execution>
	</system-under-test>
	<assert>
		<equalTo>
			<column  index="0" role="key" type="text"/>
			<column  index="1" role="key" type="text"/>
			<column  index="2" role="key" type="text"/>
			<column  index="3" role="key" type="text"/>
			<query connectionString="@NBi">
				<![CDATA[
				SELECT [ReportName]
      ,[ParameterName]
      ,[Prompt]
      ,[Value]
  FROM [dbo].[ReportDefaultParameters]
WHERE ReportName = '$ReportName$'
				]]>
			</query>
		</equalTo>
	</assert>
</test>

GenBIL-Script
setting reference 'NBi' connectionString 'Data Source=.;Initial Catalog=NBI;Integrated Security=SSPI';
setting reference 'ReportServer' connectionString 'Data Source=.;Initial Catalog=ReportServer;Integrated Security=SSPI';

case load query{
	/*CheckReportDefaultParameters*/
	/*Checks whether the fixed default values for report parameters remain the same on the server.*/

	SELECT DISTINCT   ReportName, IgnoreReason    FROM dbo.ReportDefaultParameters
}
on 'Data Source=.;Initial Catalog=NBI;Integrated Security=SSPI';

template load file 'D:\NBI\Templates\\CheckReportDefaultParameters.xml';
suite generate;

suite save 'D:\NBI\Tests\DefaultParameters.nbits';

Hope that helps to solve the requirement as long as there is no feature directly supporting it.
If you have questions, let me know.
Cheers,
Tilo

Useful code that I'll sure use when working on parameters. Thx for sharing.
I created a few tickets for features that NBi will support:
#203, #204, #205

Are you sure for the query and the property "Hidden"? Personaly I always receive a null (SQL Server 2016)

I just checked, "Hidden" doesn't exist. I believe, it's hidden, if the "prompt" is an empty string.
Maybe it was once valid in 2008. Or it's a copy and paste error from some previous queries I used somewhere else.
Please, be cautious with the properties which I didn't took into the final resultset.
Additionally, I just see: It's not "Datatype" but "Type" to get the parameter datatype.

Thx for confirmation.


[bug] Secrets in multiline scalar values in YAML files not (always?) detected

Given a YAML file like:
---
config: |
  api_keys:
    - key: "54aa556bacccda85b2cdd21bfd2369fed4c6f451e4af938adf0deb0d2b6a01a3"
    - key: 17ff70a5f4cb42cca7854f0abcd18354f647cfcd636d58ca285080b170f1c5ca
other_key: "f788a426e555dd10f03cfabc281f0bf910f5229f5b68e895f2bc1fa955115173"

detect-secrets -v scan --all-files will find the 3rd secret, but not the 1st or 2nd. All three when checked in isolation are detected by the HexHighEntropyString:
❯ detect-secrets scan --string f788a426e555dd10f03cfabc281f0bf910f5229f5b68e895f2bc1fa955115174
AWSKeyDetector         : False
ArtifactoryDetector    : False
AzureStorageKeyDetector: False
Base64HighEntropyString: False (3.759)
BasicAuthDetector      : False
CloudantDetector       : False
HexHighEntropyString   : True  (3.759)
IbmCloudIamDetector    : False
IbmCosHmacDetector     : False
JwtTokenDetector       : False
KeywordDetector        : False
MailchimpDetector      : False
NpmDetector            : False
PrivateKeyDetector     : False
SlackDetector          : False
SoftlayerDetector      : False
SquareOAuthDetector    : False
StripeDetector         : False
TwilioKeyDetector      : False

Renaming the file to e.g. .json or .txt will cause the (quoted) secrets to be picked up again. So it seems to be related to multiline scalar values parsing of YAML files.
Version used:
❯ detect-secrets --version
1.0.3

Let me know if there's anything that is missing/I should check.

@nathankooij, what an interesting edge case. I'm curious: how do you use this YAML file in the wild?
This is partially "as designed", but also partially the YAMLTransformer's issue: however, I'm not sure of a good way to address this, as this is a "known" issue with multi-line scalars.
$ pip freeze | grep 'PyYAML'
PyYAML==5.4.1

$ python -i
Python 3.6.8 (default, Oct 30 2019, 12:55:01)
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1<IP_ADDRESS>)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import yaml
>>> with open('blah.yaml') as f:
...     data = yaml.load(f.read())
...
>>> import json
>>> print(json.dumps(data, indent=2))
{
  "config": "api_keys:\n  - key: \"54aa556bacccda85b2cdd21bfd2369fed4c6f451e4af938adf0deb0d2b6a01a3\"\n  - key: 17ff70a5f4cb42cca7854f0abcd18354f647cfcd636d58ca285080b170f1c5ca\n",
  "other_key": "f788a426e555dd10f03cfabc281f0bf910f5229f5b68e895f2bc1fa955115173"
}

From the above snippet, we can see that multi-line scalars are processed as a single line (which is expected). If we were to handle this case, we would need to write some logic to figure out the original line number of the multi-line scalar, so that the audit functionality can pinpoint the secret.
We can see that the YAMLTransformer behaves as expected:
>>> from detect_secrets.transformers.yaml import YAMLTransformer
>>> with open('blah.yaml') as f:
...     lines = YAMLTransformer().parse_file(f)
...
>>> import json
>>> print(json.dumps(lines, indent=2))
[
  "config: \"api_keys:\n  - key: \\\"54aa556bacccda85b2cdd21bfd2369fed4c6f451e4af938adf0deb0d2b6a01a3\\\"\n  - key: 17ff70a5f4cb42cca7854f0abcd18354f647cfcd636d58ca285080b170f1c5ca\n\"",
  "",
  "",
  "",
  "other_key: \"f788a426e555dd10f03cfabc281f0bf910f5229f5b68e895f2bc1fa955115173\""
]

Thanks for getting back to me @domanchi.
This is a construed example where I used 3 keys to demonstrate which ones are picked up and which aren't. But in reality we do have a field (let's call it config) with a literal block scalar containing essentially an inlined YAML file. This becomes input for a Helm chart using Helmfiles. In the chart we map this inlined YAML file (the config scalar) to a Kubernetes ConfigMap. This ConfigMap is then mounted as a file into a (side-car) container which contains a Python application that uses the the now mounted YAML file for its configuration.
Since this application does deal with security-related topics, the configuration is likely to contain secrets in practice. We do have a solution where instead we load the secrets from Vault (we still mount a configuration file, but with placeholder template variables indicating which Vault secret should be loaded), but we also unfortunately have plenty of configurations for which this is not the case yet for one reason or another. This is where detect-secrets comes into play, helping us track these down such that we can push them to the Vault solution. Moreover, the aforementioned pattern is not an uncommon pattern within our company, so I would not be surprised if we have other similar usages that do not have a clear migration path. In that case, we would still like to be able to track these secrets.
I see now how this is an edge-case since the block scalar is not really YAML, just an inlined string. However, what surprises me is that with:
detect-secrets scan --string '"config": "api_keys:\n  - key: \"54aa556bacccda85b2cdd21bfd2369fed4c6f451e4af938adf0deb0d2b6a01a3\"\n  - key: 17ff70a5f4cb42cca7854f0abcd18354f647cfcd636d58ca285080b170f1c5ca\n"'
The secret is still detected (HexHighEntropyString), but this is not reflected if we were to do a regular scan. Is this because the audit functionality cannot pinpoint the exact line as you mentioned? I will have a look at the missing functionality, but I'm not a master at either Python or YAML so not sure how far I'll get. :)
Small side-note: in v0.14.3 more of these secrets actually showed up, which is currently a reason for us to not upgrade to v1.0.x.

So I was thinking something like this for parsing literal blocks:
diff --git a/detect_secrets/transformers/yaml.py b/detect_secrets/transformers/yaml.py
index 6680d44..b2249f0 100644
--- a/detect_secrets/transformers/yaml.py
+++ b/detect_secrets/transformers/yaml.py
@@ -67,15 +67,20 @@ class YAMLTransformer(BaseTransformer):
             if matches:
                 comment = matches.group(0)

-            # YAML does the parsing for us, and the value we'll receive is a string proper
-            # (rather than the raw value, like `ConfigFileTransformer`). We want to artifically
-            # add quotes here since we know they are strings, HighEntropyString will benefit
-            # from this, and all other plugins don't care.
-            #
-            # However, if there is a quote inside, we need to escape it.
-            value = value.replace('"', '\\"')
+            scalar_header_matches = _yaml_scalar_header_regex().search(line)
+            if scalar_header_matches and scalar_header_matches.group(1) == '|':
+                lines.append(f'{item.key}: {comment}')
+                lines.extend(list(f'{l}{comment}' for l in value.splitlines()))
+            else:
+                # YAML does the parsing for us, and the value we'll receive is a string proper
+                # (rather than the raw value, like `ConfigFileTransformer`). We want to artifically
+                # add quotes here since we know they are strings, HighEntropyString will benefit
+                # from this, and all other plugins don't care.
+                #
+                # However, if there is a quote inside, we need to escape it.
+                value = value.replace('"', '\\"')

-            lines.append(f'{item.key}: "{value}"{comment}')     # type: ignore
+                lines.append(f'{item.key}: "{value}"{comment}')     # type: ignore

         return lines

@@ -103,6 +108,9 @@ def _yaml_comment_regex() -> Pattern:
     """
     return re.compile(r'(\s+#[\S ]*)')

+@lru_cache(maxsize=1)
+def _yaml_scalar_header_regex() -> Pattern:
+    return re.compile(r'\s+([\|>])')

 class YAMLValue(NamedTuple):
     key: str

Essentially when we encounter a literal block, we return the lines separated as indicated by new lines in the literal block. In this case I also "injected" the comment into each line s.t. plugins can pickup on this. Still not sure what to do about escaping quotes, and perhaps we should do something similar for folded blocks when we encounter two spaces (this is converted to a new line as well according to https://yaml-multiline.info/), but was wondering what do you think of this approach?

Ah, I think that change to KeywordDetector might be sufficient enough. I'll have to try again once v1.0.4 is out to see if this will work better for us.
In the worst case I think a custom plugin could do the trick. The idea of rescanning is also interesting, but I'm a bit worried about performance in that case. Between v0.14.3 and v1.0.x we did notice a significant bump in run time (I believe you have some performance improvements on the way though), and as this is part of CI for us, it's something I have to keep in mind.
Let me re-evaluate with v1.0.4. :)


We need a place byname participants can go to find interesting apps

Proposing this be an app named "Swap Meet"

Described in more detail in this section of a documentation page (may require access permission).


mempool refactory

current implementation is bitmap, but the allocation time is not determined.  maybe we could use free-list to improve it.

or use jemalloc to help me :-)

branch jemalloc2 is ok, but

it will eat up memory quickly
performance is worser than bitmap impl


Adaptive cards Submit Actions

I created some adaptive cards with Submit Actions so the user can click on them as an alternative to writing.
Example

The problems became when I start testing the bot in Microsoft Teams, because when I clicked the buttons the text wasn't being send.
After some researching on the web I found out that in order for the this behaviour to work ok Teams I had to send a "msteams" object in the data property, like so:

The issue is that now it only works as expected on Teams and not on the Webchat. Is there some way to get it working on both?

Hi @Bernardo08pt ,
I handled it this way.
"actions": [
{
"type": "Action.Submit",
"title": "Submit",
"data":  ${if(toUpper(channelName) == toUpper('msteams') ,'{"msteams": {"type": "messageBack", "value": "Sign Up"},"action": "Sign Up"}' , '{"action": "Sign Up"}')}
}

]
Regards,
UmPrel.

Hi @UmaPrelude
thanks for your answer, it makes perfect sense but can you tell how can I access the channel name in composer?
Thanks in advance

Please use turn.activity.channelId

Hope this will help. Kindly let me know.

@UmaPrelude it works!!
thank you so much

close this issue as the solution provided


Add group/section capability

Currently it is only possible to nest the TOC up to two levels deep which is enough, however there is no way to group/section the TOC as far as I can see in the documentation.
I am talking about something like Docbox does with the "Introduction" and "Example" in the following screenshot

The ideal scenario would be for this grouping to be labeled as a suffix in the include list in the index file, example:
includes:
  - intro | Introduction
  - examples | Api usage examples
  - errors

This way Slate would interpret the text after the pipe as the title for the section/group and display it accordingly, otherwise it wouldn't section that document file in the TOC.
As for how the same thing would be done inline with the index file the ideal scenario would be to do the same way Docbox does, the single header # would dictate the section title, however it would mean a breaking change so a different solution would have to be procured in a way that is also easily understood when reading the raw markdown file.

Yup, a known feature request! Closing in favor of the existing #163.


Remove some of hystric metrics

Is it possible to remove some of metrics from REST endpoint (e.g. remove everything except "hystrix_command_event_total") ?
but cannot find a way to filter collectors that I don't need.

The library doesn't offer that feature. I suggest to use the Prometheus scrape config for that; there you can use relabeling and the action "drop" to ignore metrics by wildcard.
See https://prometheus.io/docs/prometheus/latest/configuration/configuration/ for more information.


Submission stuck in Exporting - GSE132065_BloodTimeHuman

Project Published in DCP has a submission that is now stuck in Exporting status
Project GSE132065_BloodTimeHuman was Published in DCP a while ago.
Now the submission is stuck in "Exporting".
We probably want to sort it out in case we want to do any updates in the future. And also so that the status matches what's been done to that project.
Acceptance Criteria:

[ ] Discover why is stuck
[ ] The submission is not on an In Progress Status but on a definitive one (Exported for example)

Last attempt to export (just metadata): 22nd July
Our logs don't go that far back.
I'll reset back to graph valid and attempt to re-export (just metadata) now.

Export in progress, will monitor

In progress: 288/408 done
No errors so far.

if the export fails we can force the state to exported so in the future we can change the project info and make other updates.
The downstream components are not ready to import the updates done in June 2022 yet so there is no need for an import form

Exported!


Release/v3.0.0alpha2

Pull Request Test Coverage Report for Build 625

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 91.191%

Totals

Change from base Build 622:
0.0%

Covered Lines:
3934

Relevant Lines:
4314

💛  - Coveralls