[api] Allow extensions to use the syntax highlighter

It would be great if the extension API would offer a way to access the syntax highlighter of VS Code.
I am currently building an extension that offers an inline help system, I use a WebviewPanel to display the help in the editor. For consistency it would be great if we could format code samples the same way the editor does but I currently see no way to do that.

In what format would we give the syntax highlighted code give back?

So, just to add this, all I would need would be a rendered html string.

Adding @mjbvz as the webview expert.

@aeschli To get vscode-like syntax highlighting in a webview we would need an api like @sebastian-lenz proposes. For the markdown preview specifically, since many websites use highlightjs for highlighting code anyways, using highlightjs in the markdown preview isn't to much of a problem imo

You might be interested in http://shiki.matsu.io/. It doesn't use oniguruma so no native dependecy, should be quite easy to integrate into your extension.

Can shiki be already used for markdown preview code blocks (to solve #59483)?

Thanks for the tip, but my core issue is the fact that when including a syntax highlighter in an extension, the results are not visually consistent within VS Code. Although Shiki will use the same specification, we cannot access the theme colors the user has picked.

We have a similar issues within the python extension
https://github.com/Microsoft/vscode-python/issues/3773
https://github.com/Microsoft/vscode-python/issues/4197
https://github.com/Microsoft/vscode-python/issues/4026
https://github.com/Microsoft/vscode-python/issues/4066

The token colors aren't even exposed as CSS variables... over 400 variables and the tokens are missing?

Thought I'd mention this (even though it has been mentioned before https://github.com/microsoft/vscode/issues/56356#issuecomment-460781558)
I'm currently using http://shiki.matsu.io and this works perfectly well (for generating HTML with styles/themes & custom tokens from VS Code & VS Code extensions).
@octref thanks for the wonderful package

Isn't this also a little related with the question here on StackOverflow? If VSCode would provide the possibility to use the editor object - perhaps including some options like readonly - this ticket would be resolved as well?

@DonJayamanne Would you elaborate on that a little? I don't see how Shiki solves for this (other than by coincidentally supporting themes that may or may not match a user's visual config).

I also require this feature to be implemented, Currently unable to use themes for my extension Thunder Client in the response syntax highlighting

I don't see how Shiki solves for this (

Sorry I missed this. I had to write code to load the theme files into Shiki.

The mermaid markdown example by @mjbvz shows how where to plug in custom syntax highlighting in markdown preview. And vscode-textmate can be used to adapt tokens to hljs class names. It would be nice if vscode did this automatically, but it's possible to wire up manually at this point. And this works better than shiki for multiple reasons, including because hljs class names pick up matching theme colors automatically.

Any progress on this?
While manually wiring in the themes would be doable for a specific language, it will be hard to support a generic case which can accept any language for syntax highlighting.
Moreover, any highlighting changes added by other language extensions will not be reflected this way.
Take a look at this generic Sticky Note which allows codeblocks to be created by copying a selection. Even after copying in the base css files like markdown.css and highlight.css, there's a lot of inconsistency between the note and the actual file.

May I ask how you could make shiki work on an vscode webview extension (that uses webpack)? VSCode webview extensions are not able to make requests which seems necessary for the onig.wasm to be loaded and same for the themes. Themes can be solved somehow but i really wonder to know how you make the shiki work?

@aeschli @alexdima  For webviews and notebook renderers, we'd like an API where we can give VS Code a string of code and a language identifier, and get back html+css with syntax highlighting for that code. This would work similarly to the existing tokenizeToString function we use in core

For webviews, I'd like to use this to highlight code blocks in the markdown preview: https://github.com/microsoft/vscode/issues/91279

For notebook renderers, I had to put together a solution for this in core that uses tokenizeToString. It would be nice to move this logic out of core and also let other notebook renderers access this API

Hi @mjbvz ! Do you know hot GitHub Copilot Chat works? Since its code block can be adapted to the theme user selected.

Hi @mjbvz ! Do you know how GitHub Copilot Chat works? Since its codeblock can be adapted to the theme user selected.

They have two different things, in the chat window they are not 100% matching the editor colors. However for the big answer blocks they are using a new editor tab which already has the editor colors as i've seen. As i've checked last week

Any updates on this? Will this feature request be considered or has it been abandoned?


New version: TechSmith.Camtasia version <IP_ADDRESS>1

Pull request has been created with komac v2.2.1 :rocket:
Resolves: https://github.com/microsoft/winget-pkgs/issues/159607
Microsoft Reviewers: Open in CodeFlow

https://github.com/microsoft/winget-pkgs/issues/142854


Keeps adding new pdf over older one

Add pdf from stream open it go back and add another pdf again it will load previous loaded pdf as well

Hi, Thank you for using this library. Above issue has been fixed in latest version.
https://github.com/afreakyelf/Pdf-Viewer/releases/tag/v2.0.1


[TVMScript] Encourage using T.Buffer directly

Previously there are two equivalent ways of declaring a buffer in TVMScript:
buffer = T.buffer_decl(...)
buffer = T.Buffer(...)

The two approaches are aliases to each other and are essentially the same in implementation. Therefore, this PR encourages to use T.Buffer as the recommended approach as it's a bit shorter. Meanwhile, T.buffer_decl will continue to be valid in TVMScript, but a deprecation warning will be emitted if its used.

CC: @cyx-6


Add Azure messaging binder to the streams code

Closing due to lack of interest. If you would like to see this supported, please respond to this issue


Cherry-Pick SkillValidation to 4.10 (#2761)

Pull Request Test Coverage Report for Build 163587

1 of 2 (50.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 82.924%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botframework-connector/src/auth/jwtTokenValidation.ts
1
2
50.0%

Totals

Change from base Build 163157:
0.01%

Covered Lines:
15154

Relevant Lines:
17366

💛  - Coveralls


Error 503 on http://sideeffect.kr/popularconvention/

I really would like to access this wonderful site, but it crashed some time ago.

@nowox I recovered it now. Sorry for your inconvenience.


Folder content style

Fixes #1328. Styling the folder content as Pastanaga style.

@iFlameing you have a merge conflict. Pls fix. :)

@iFlameing awesome work! I found a few things we could amend to even further improve things. This is really nitpicking. Though, we want to be as close as possible to Albert's ideas and design. :)

@iFlameing not really related to this PR and a know issue. Though, maybe you can look into this as well:

@iFlameing thanks for the fixes. The icons next to the text are still off a little bit everywhere. Maybe that's something that @sneridagh needs to have a look.

@sneridagh @iFlameing we have to discuss what we want to show for content objects that do not have their own workflow state but inherit from the parent container (e.g. images and files). IMHO they should show the same "No workflow state" that we show in the toolbar menu with a grey dot. Maybe with a tooltip "This content object has no own workflow state but inherits the workflow state from the content object it is contained in".

@iFlameing paste icon in the folder_contents toolbar still has a grey background on hover. pls remove.

@tisto fixed except date :)

@sneridagh I just tried a git pull on this PR branch (locally) and now I have merge conflicts. I guess due to the force-push. TBH I don't get why ppl do force-push on git. Any idea why this kind of became a pattern? git force-push is dangerous in my opinion as a pattern and it leads to problems when multiple people work on a branch or even when someone just checked out the branch to try out things. IMHO we should discourage force-push altogether as an anti-pattern. Though, maybe there is a good reason for this approach that I don't see...

@iFlameing the Travis build is broken due to:
/home/travis/build/plone/volto/src/components/index.js
  97:8  error  Parsing error: `ContentsIndexHeader` has already been exported. Exported identifiers must be unique.
   95 | export SearchTags from '@plone/volto/components/theme/Search/SearchTags';
   96 | export CommentEditModal from '@plone/volto/components/theme/Comments/CommentEditModal';
>  97 | export ContentsIndexHeader from '@plone/volto/components/manage/Contents/ContentsIndexHeader';
      |        ^
   98 | export ContentsItem from '@plone/volto/components/manage/Contents/ContentsItem';
   99 | export ContentsUploadModal from '@plone/volto/components/manage/Contents/ContentsUploadModal';
  100 | export ContentsPropertiesModal from '@plone/volto/components/manage/Contents/ContentsPropertiesModal';

Yesterday I did a rearrangement of imports on the index.js file, I guess it’s due a bad merge. Reset to the master version then add local changes (if any) will do.

@sneridagh @tisto Yesterday, I did the rebase and accepted both changes. I will fix it.

@tisto can you check it now. I fixed all the test and resolve the conflict. Travis ci is falling due to not receiving any output in 10min.

@iFlameing will do! Don't worry about Travis for now. This is a problem we have on master as well right now...

@iFlameing the grey hover background on the upload icon is back and the three dots (select columns to show) are displaced again.

@iFlameing the icons and the labels should use the same baseline:

@tisto in my local development the three dots are at the same position where It should be :) and there is no background image for upload icon on hover.

@iFlameing odd. I did a fresh checkout...will check my env again and rebase master.

@iFlameing @sneridagh when we fix the line-height issue with the icons in the menu, I think we have something that we can merge and release. There are always details but we can improve those in an additional PR or later.

@tisto I think that this pr is mergable. I have an idea to resolve field  but it is totally hardcoded  like giving style to each individual icon. But this is not great  solution. Can you merge this for now and then we can talk about this on Tuesday.

I would like to give it some more love, nothing important, small touches. I
will look into it today.
On Sun, 12 Apr 2020 at 11:58, Alok Kumar<EMAIL_ADDRESS>wrote:

@tisto https://github.com/tisto I think that this pr is mergable. I
have an idea to resolve field but it is totally hardcoded like giving style
to each individual icon. But this is not great solution. Can you merge this
for now and then we can talk about this on Tuesday.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/plone/volto/pull/1343#issuecomment-612590770, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADW4D2EF3XZ53RR5W3J5O3RMGGDNANCNFSM4MC7DAGQ
.

--
Víctor Fernández de Alba
Github/Twitter/IRC: sneridagh

@iFlameing todo

[ ] Fix icon/text alignment in the menu
[ ] Make icons in table slightly bigger
[ ] Localize effective / modified with date-fns
[ ] Get rid of gap between breadcrumbs and table

-> after that we merge

@sneridagh Please don't merge it currently because I left it.only in cypress test and it is running only one test and that was passing. But due to recent changes, some test are broken and I am working on it. Some of the recent changes are choosing a date from date picker and disabling the paste icon.

@iFlameing Green! Should we merge? :)

yes we can merge
:)


Adopt extension logging API

Now that the extension logging API can persist across reload and restart it's time to deprecate the current log level setting and move over to the extension API.

To verify:

Install the pre-release GitHub Pull Requests and Issues
Open the Output for GitHub Pull Request
Run the command "Developer: Set Log Level" and set the log level of GitHub Pull Request to "Trace"
Verify that you start seeing trace messages in the output.


Pass matrix object array as filter

Apologies if some doc or issue already explains this, I have browsed through several and haven't found this case:
Is it possible to have a single job run as a matrix (so, actually multiple jobs) so that one of the job's steps is the paths-filter action but its filter is dynamically set from an array in the matrix object property, like:
  my-job:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        case:
          - {
            diffFilters: [
              'src/**/folder1/**',
              'src/**/folder2/**'
            ],
            fileToRun: FileA
          }
          - {
            diffFilters: [
              'src/**/folder3/**',
              'src/**/folder4/**'
            ],
            fileToRun: FileB
          }
          - {
            diffFilters: [
              'src/**/folder5/**',
              'src/**/folder6/**'
            ],
            fileToRun: FileC
          }
    steps:
      - uses: actions/checkout@v2
      - name: check code changes
        uses: dorny/paths-filter@v2
        id: changes
        with:
          filters: |
            src: ${{ matrix.case.diffFilters }}
      - name: run file
        if: steps.changes.outputs.src == 'true'
        run: |
          # run the file from ${{ matrix.case.fileToRun }}

it seems more readable to me that the changes are checked in the same job they are evaluated in.
the above workflow always ends up with false, so the run file step is never executed.

Check https://github.com/hellofresh/action-changed-files


Adds a componentshouldupdate to the Markdown component

This could/should improve the animation performance on fairs

👍🤞🏾this fixes our animation performance issue


Comments screen

Simple comments screen replaces single image view.
Hide tab bar once you navigate into thread view and beyond
Move thread title to nav bar header title so you can always see it
Closes #511 and #512

This is g2g @andrewxhill


Defining requiresMainQueueSetup to remove React Native warning

iOS app shows React Native yellow box warning that RNOS module requires main queue setup since it overrides 'constantsToExport'.
This commit defines the function to suppress the warning.

This was merged in the now-upstream package: https://github.com/aprock/react-native-os/pull/1


Use "getter" pattern to derive current stats in Pokemon class

I want to propose computing the current "real" stats for a pokemon at access time instead of constructor time.  I think this might clean up some weird logic, and also make it easier to display the effect of stat boosts, items, and abilities on a pokemon's real stats.
This could look like changing .stats to .getStats() on the Pokemon class, or if we want to be clever, it could even be a property "getter" pattern.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
This would obviously require some refactoring in the calculation logic though, so I wanted to ask before investing any time in it.

We don't do getters because we target old browsers and havent added a bundler/transpiler (see our tsconfig still outputs es3). You'll notice I already have a comment https://github.com/smogon/damage-calc/blob/master/calc/src/pokemon.ts#L111 because maxHP is another obvious getter. #328
Can you point out some specific cases where moving the time when stats are initialized would matter? I'd be fine with adding a getStats or getComputedStats or something method provided I understand the problem it would solve, but I'm working on several projects right now and can't quite remember the cases in this repo where its important

Oh, wow.  Do you still see usage from browsers older than IE 9?  Anyway, it's not really that big of a difference to make it an explicit function call.
As mentioned above, what I want to do in my project is have a reliable way to update IVs, EVs, stat boosts, abilities or items on an existing Pokemon instance and get the correct real stats.  I've resorted to creating a new Pokemon on each change for now, but it seems a little silly.  It looks like that's what this calculator client does, too:
https://github.com/smogon/damage-calc/blob/c7b053c403c9c1758643f7acc72fafde68d1a367/src/js/shared_controls.js#L555
This is probably fine.  It just felt like a bit of a trap when I stumbled on.

I was also thinking that it might create an opportunity to move some of the ability and item computation that "modifies stats" into the pokemon class.  I guess I'm not certain how much of that is consistent across generations though.

Oh, wow. Do you still see usage from browsers older than IE 9? Anyway, it's not really that big of a difference to make it an explicit function call.

No, and from looking at our own analytics and PS's we dont really see that traffic. Its an argument I've had with Zarel where we shouldnt be supporting browsers neither of userbases use, but because I plan to integrate the calc directly into the client their min version is our min version, and Zarel seems to like to support ancient browsers because 'he likes the challenge' or something.

As mentioned above, what I want to do in my project is have a reliable way to update IVs, EVs, stat boosts, abilities or items on an existing Pokemon instance and get the correct real stats. I've resorted to creating a new Pokemon on each change for now, but it seems a little silly. It looks like that's what this calculator client does, too:

Yeah, I was just going to refer you to what the client does. Why is it silly? There shouldn't be a lot of overhead to creating said object, nor is where its being used (in response to user changes) latency critical even if it were.

This is probably fine. It just felt like a bit of a trap when I stumbled on.

I actually wanted all of our classes to be immutable because it dramatically reduces the number of bugs, but I had to compromise which is why we .clone() our objects all the time. I had them immutable in my original rewrite, but the mechanics code mutates the Pokemon a lot for use in the Description and it was a pain to refactor. IMO, mutating the Pokemon is really an anti pattern and the fact that we do it internally in the mechanics is a legacy implementation detail which I'd like to get around to fixing.

I'm onboard with immutable pokemon instances.
Maybe what I want then is an updatePokemon(pokemon: Pokemon): Pokemon function or a method like clone that takes overrides.  There's not actually any pattern for taking an existing instance and creating a new one.
I wrote this helper, but it seems to me it only sort of works by accident that most of the properties of a pokemon overlap with the shape the constructor expects.
https://github.com/ajhyndman/visual-pokemon-calc/blob/master/src/util/misc.ts#L25-L26

I also don't like getters in general; I think they make code less readable compared to just adding () after the variable name so it's clear that it's a function call.

I wrote this helper, but it seems to me it only sort of works by accident that most of the properties of a pokemon overlap with the shape the constructor expects.

No, that's not a hack, the constructors intentionally support new Pokemon(pokemon) to clone.

No, that's not a hack, the constructors intentionally support new Pokemon(pokemon) to clone.

Oh, that makes me feel better about relying on it.  Wouldn't it make sense to make it explicit that the constructor accepts a Partial<Pokemon> instance then?
Relatedly, the pokemon's properties still end up copied twice in my solution.  Once during my object spread, and then again internally in the constructor.  What if .clone() accepted an overrides object?  That was another thing I tried to do before realising it wasn't supported.

I'm not sure if what the constructor accepts is a Partial<Pokemon>. It probably makes more sense that the constructor accepts a PokemonData, and Pokemon implements PokemonData.
I think some constructors accept an overrides object. Not all of them, though?

What you call PokemonData is called Species in this project (the raw data files JSON object).  If you want the Species information on the Pokemon instance, get it through the species field.
I think most of the constructors accept overrides, but thats an overrides of the core data files (ie. Species here), not the fields of Pokemon. All (or almost all) of the constructors use an options param pattern to avoid having to specify too many fields when new-ing one up and thats basically where you provide the species fields (though you're hardly "overriding" them, they dont exist yet because youre literally constructing the object right then).
I would be down with the constructors Foo (like Pokemon) accepting Partial<Foo> &  {overrides?: Partial<FooData>} explicitly, though I feel theyre already probably doing that already. The exception is computed values like stats here which is the one you care about, so you might need to make it a Partial<Exclude<Foo, 'stats'>> etc.

Heh, this would probably be a lot easier of we did the Template -> Species rename everywhere.
I did mean Template implements TemplateData, though.

I like that TemplateData is more explicit than Partial<Template>, though.

After all, not all fields are optional. Some are required, and TemplateData specifies which ones.

After poking at my project some more today, I realised what I really want to get out of this is to be able to show total stats (after all modifiers) to users.  And it turns out that's quite difficult without reimplementing or pulling out internals of the existing calculator code.
Speed calculation is here, and requires field information:
https://github.com/smogon/damage-calc/blob/master/calc/src/mechanics/util.ts#L38
A lot of item and ability logic is currently tied to other non-stat damage modifiers, here:
https://github.com/smogon/damage-calc/blob/master/calc/src/mechanics/gen8.ts#L884
It's true that's only relevant to my project, but it doesn't seem ideal for us both to maintain separate copies of the logic, so I'd rather find a way to contribute, if you're open to it.

I have an interested in in computed stats for a project I'm working on as well, and theres already several places where it is done (here, in the sim code and in battle tooltips on the client). Come to think of it, its possibly you just want https://github.com/smogon/pokemon-showdown-client/blob/master/src/battle-tooltips.ts#L827.
I dont really have much bandwidth to figure out a good way of unifying everything (or even just exposing this in a good way in the calc - remember, the item and ability logic is actually spread accross all the gen files, not just in the one file you linked) at this point, but I would accept a change which made some progress on this front

Oh yeah, that looks like what I want to do!  Cool, I'll have a think about it.
I think I can close this issue for now.


Express being fetched from github via SSH

It's very strange and makes it harder to make Dockerfiles as ssh-agent doesn't typically run by default.
upstream does not depend on express, we depend on  "express": "^4.16.2" which currently resolves to in package-lock.json:
"express"<EMAIL_ADDRESS>
the Dockerfile workaround is to include github's host key:
RUN mkdir /root/.ssh
RUN ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

that didn't work... when I tried it yesterday. I deleted the node_modules dir and the lock file today and that did work... so strange.


stac_s2

This adds a dataset provider which allows to use S2 tiles listed in a STAC result.
I intentionaly used only geo types in the STAC module . i think we should release it as a separate crate in rust-.geo (later).

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


FT-820 Add SnowflakeDynamicTable as possible parentType

Thinking about this a bit more, we probably need to extend the types that AssetBatch considers for its asset/view-agnosticism setting to now include SnowflakeDynamicTable, too — we should probably add that to this PR so it's all together.


[c++] Memory leak in Bond-over-gRPC

client side: C++, server side: C#, bond: 7.0.1, grpc 1.6.8, Windows 7
I am testing bond over gRPC. My server is implemented in C# on port 50051. It gives me object which contains 2MB string.
After 3000 iteration my client (implemnted in c++) application crashed because of memory leak.
Could you check if someting wrong is in my testing loop? Should I clean some buffers?
    auto ioManager = std::make_shared<bond::ext::gRPC::io_manager>();
    auto threadPool = std::make_shared<bond::ext::gRPC::thread_pool>();
    const std::string server_address("<IP_ADDRESS>:50051");
    DB::Client greeter(
        grpc::CreateChannel(server_address, grpc::InsecureChannelCredentials()),
        ioManager,
        threadPool);

	for(int i = 0; i < 100000; ++i)
	{
		Request_SampleClass request;
		request.r_id_kal_iz = i;

		bond::ext::gRPC::wait_callback<SampleClass> cb;
		greeter.AsyncGet(request, cb);

		bool waitResult = cb.wait_for(std::chrono::seconds(10));

		if (!waitResult)
		{
			std::cout << "timeout ocurred";
			return 1;
		}
		else if (!cb.status().ok())
		{
			std::cout << "request failed";
			return 1;
		}

		SampleClass reply;
		cb.response().Deserialize(reply);
		std::cout << "Correct response: " << reply.id_iz << std::endl;
	}

Can you check if you have fec4da0a fix?

This fix was crucial. There is no more memory leak.


Autolinks get cut off if they contain & (escaped query params)

Hi,
Given this input:
https://example.com?first=hi&second=hello
Flexmark gives this output:

https://example.com?first=hi&second=hello

So the generated link will be cut off before the & part and hence not contain the second query parameter.
This might be intended? But it works in Pegdown which will return:

https://example.com?first=hi&second=hello

(The reason I get this & in the url in the first place is that I escape the input to the parser.)
Example code: (Flexmark version: 0.61.10)
import org.apache.commons.lang3.StringEscapeUtils;

import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.profile.pegdown.Extensions;
import com.vladsch.flexmark.profile.pegdown.PegdownOptionsAdapter;
import com.vladsch.flexmark.util.data.DataHolder;

public class MarkdownParserBase {
    private final static int PEGDOWN_EXTENSIONS =  Extensions.AUTOLINKS;

    private static final DataHolder OPTIONS = PegdownOptionsAdapter.flexmarkOptions(
        PEGDOWN_EXTENSIONS
    );

    public static Parser PARSER = Parser.builder(OPTIONS).build();
    public static HtmlRenderer htmlRenderer = HtmlRenderer.builder(OPTIONS).build();

    public static String getEscapedHtml(String markdownString) {
        String escapedDescription = StringEscapeUtils.escapeHtml4(markdownString);
        return htmlRenderer.render(PARSER.parse(escapedDescription));
    }

    public static void main(String[] args) {
        String input = "An auto-link: https://example.com?first=hi&second=hello";
        System.out.println(MarkdownParserBase.getEscapedHtml(input));
        // Prints :
        //
An auto-link: https://example.com?first=hi&second=hello

    }
}

@andersHj, pegdown does its own auto-link parsing along with everything else.
Flexmark uses org.nibor.autolink in a post-processor which scans AST for autolinks.
I missed adding HtmlEntity nodes to be appended to text when they follow immediately after.
I now added the code to handle them.
Escaping all markdown will cause the autolinks to have & in the link text. The URL will be correct since HTML entities are converted, but the text will have the & of & converted to HTML Entity. This is the expected behaviour since the link text will have & escaped.
You will get: https://example.com/?first=hi&second=hello not https://example.com/?first=hi&second=hello
Pegdown, does not convert link text to HTML entities.
Here is the spec test case for this condition:
https://example.com/?first=hi&second=hello
.

https://example.com/?first=hi&amp;second=hello

.
Document[0, 46]
  Paragraph[0, 46]
    TextBase[0, 46] chars:[0, 46, "https … hello"]
      AutoLink[0, 46] text:[0, 46, "https://example.com/?first=hi&second=hello"] pageRef:[0, 46, "https://example.com/?first=hi&second=hello"]
        Text[0, 46] chars:[0, 46, "https … hello"]

Fix for this is available. Repo updated, maven updated but may take a while to show up in maven central.

@andersHj, I missed adding a test with multiple HTML entities in the auto-link. Now fixed and new release on its way.
https://example.com/?first=hi&second=hello&third=ok
.

https://example.com/?first=hi&amp;second=hello&amp;third=ok

.
Document[0, 59]
  Paragraph[0, 59]
    TextBase[0, 59] chars:[0, 59, "https … rd=ok"]
      AutoLink[0, 59] text:[0, 59, "https://example.com/?first=hi&second=hello&third=ok"] pageRef:[0, 59, "https://example.com/?first=hi&second=hello&third=ok"]
        Text[0, 59] chars:[0, 59, "https … rd=ok"]

Fix for this is available. Repo updated, maven updated but may take a while to show up in maven central.

Thanks a lot for quick fix! Seems to work fine. 👍


VSCode Project Updates

Included in this pull request are changes that make the VSCode simpler for people to pick up and work with. I plan on spending some more time with the wiki entry for VSCode as well to make the process for setting up raylib much more straightforward.
Updates:

consolidated build and run tasks into a singular task for each. this occurred when i realized i didn't need to create a separate task for each platform.
added support in the makefile for a src/ and obj/ file hierarchy that includes subfolders. i will update the VSCode tutorial to reflect this change.

Thanks for the update @MurrayIRC!


Implement media time trim feature.

Add class MediaTrimTime to hold trim duration.
Apply start time by invoking seekTo of MediaExtractor.
In VideoTrackTranscoder and PassThroughTrackTranscoder, check the sample time and make it not pass the trim end time.

@ypresto, Can you consider this feature?

Perhaps some kind of interface to pass multiple, optional parameter is necessary.
I think builder pattern suits this.

I'm afraid of device compatibility because of flush() bug: #8

@ypresto
I have a need for this capability as well.  Can you clarify the similarity regarding the seek that is done in this PR vs the flush bug that you corrected by queuing output.  Am happy to work on this.  Obviously we don't want any device compatibility issues.

@selsamman
flush() was used to seek to beginning of video after determining output format.
That's why I thought similar issues can happen on some devices.
If you have affected device (or one has similar SoC), it can be tested without problems.
(Or AWS device farm can be used. Power of money 😎 )

@ypresto
Sorry to be so dense here.  If I understand the original problem it was that it was not cool to essentially do an extra partial extraction just to determine the input format and then reset everything and flush. Instead you had to determine the format on-the-fly as you were decoding and queue everything until the decoder ran long enough to provide that format info.
But I don't see any flush being done in this PR.  It just does a seek.  Is that somehow doing a flush under the covers? I am new to MediaCodec.
BTW thanks for pointing me to the AWS device farm.  That could be a game changer :-)

Ah, you're right, flush()ing is different than skipping leading frames (seeking).
I'm afraid that just skipping frames can cause another unexpected codec bug or not.
I'll test with device farm about it.

@ypresto I think this is a useful feature. Please consider to merge it.

Without a doubt this is an interesting feature. Are there any plans of adding it in the future?

@CharlesLin99 , Thank you very much for your code of trim feature, It's useful! @sebadelcampo1 You can change your code according to this pull request , but you should let the function "createAudioOutputFormat" of all classes that implements "MediaFormatStrategy" return null, because "AudioTrackTranscoder" class doesnt have trim feature.

I would also like to have this feature


Switch default behavior to auto-publish

TODO:

Remove --auto-publish flag
Change behavior of webstore (without sub-commands) to do an upload + publish
Make upload command include publishing by default
Add --no-publish flag to disable publishing when running upload command

https://github.com/sindresorhus/refined-github/pull/235#discussion_r65682540

Maybe it would be better if $ webstore (no sub-command) uploaded and published. If you want either independently, you can use the sub-commands. That way you don't need to flag and the most common use-case get's easier.

👍 I like it. Less complexity, better DX.

@sindresorhus Quick Q for you, since you have more experience writing CLIs than I do.
For the --help text, right now we have:
    Usage
      $ webstore <command>

    where <command> is one of
        upload, publish

What kind of verbiage would you expect to see here instead when those are optional, and the default is both?

I've got a branch for this locally. Going to sit on it until #5 is ready so we only have to do a single major version bump.

I dunno. Probably something like this:
Usage
  $ webstore [command]

Commands
  upload - Description
  publish - Description

When no command is specified it will both upload and publish

Any movement on this?

Sorry about that, will get to it soon. Have been putting it off in favor of some work on other projects, but definitely want to make it happen.

Happy 8-year anniversary!

https://github.com/fregante/chrome-webstore-upload-cli/releases/tag/v3.2.0

Hi, any way to upload, submit for review, but not publish?


Adding the insecure VM environment variable to the CI

@ahadas @eslutsky

@bkhizgiy , looks good,
like we discussed  dont need to add the tests..
please rebase on https://github.com/kubev2v/forkliftci/pull/97 (once merged)


Perfetto syntax

No documentation on perfetto syntax.

Syntax documentation can be found here
https://perfetto.dev/docs/analysis/perfetto-sql-syntax
I hope it helps
On Mon, Nov 6, 2023, 10:19 AM TheGithuber200 @.***>
wrote:

No documentation on perfetto syntax.
—
Reply to this email directly, view it on GitHub
https://github.com/google/perfetto/issues/627, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZ3CHTQD6NCH32KZ4YW46ODYDC2RZAVCNFSM6AAAAAA67ICWVSVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE3TQNZXHE2TEOA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Syntax documentation can be found here https://perfetto.dev/docs/analysis/perfetto-sql-syntax I hope it helps
…
On Mon, Nov 6, 2023, 10:19 AM TheGithuber200 @.**> wrote: No documentation on perfetto syntax. — Reply to this email directly, view it on GitHub <#627>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AZ3CHTQD6NCH32KZ4YW46ODYDC2RZAVCNFSM6AAAAAA67ICWVSVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE3TQNZXHE2TEOA . You are receiving this because you are subscribed to this thread.Message ID: @.
Perfetto SQL syntax to find a problem with my network wifi/sim because it's randomly disconnecting now it's stopped as I caught it in the trace

I need more SELECT queries rather than CREATE etc.

Most Perfetto specific functions are defined in the Perfetto Standard
library. In general, Perfetto is using sqlite, so using standard sqlite
syntax should work.
On Mon, Nov 6, 2023 at 11:10 AM TheGithuber200 @.***>
wrote:

I need more SELECT queries rather than CREATE etc.
—
Reply to this email directly, view it on GitHub
https://github.com/google/perfetto/issues/627#issuecomment-1794582376,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZ3CHTRLW2IJMZSWIVIZN2TYDDASDAVCNFSM6AAAAAA67ICWVSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOJUGU4DEMZXGY
.
You are receiving this because you commented.Message ID:
@.***>

As https://perfetto.dev/docs/analysis/perfetto-sql-syntax says, the syntax is based on SQLite so you can use any SQLIte tutorial for select statements (e.g. https://www.sqlitetutorial.net/sqlite-select/, https://www.tutorialspoint.com/sqlite/sqlite_select_query.htm, https://www.sqlite.org/lang_select.html)
Some example queries can also be found at https://perfetto.dev/docs/analysis/trace-processor#writing-queries and the list of tables is available at https://perfetto.dev/docs/analysis/sql-tables

How


Reopened updates

I have changed a few things about the website.
Cheatsheet no longer uses jQuery, has jump-to links.
Cheatsheet is now fully mobile responsive.
404 page is completely re-done, to fit modern raylib branding.

@matthewraaff Thanks for the reviews!


Issue: Typo of 'deceleration' in documentation

Question on: https://github.com/ChristopherOosthuizen/ABlaze/tree/master/_docs/variables.md

Fixed thanks for telling me


Traceback (most recent call last)

What is this error?

Tiktok video download is not yet supported. China will support the video later.


Difference between convert_module_to_f16 and torch native amp

Hello,
Why didn't you use the PyTorch default torch.cuda.amp for mixed precision?
What's the difference between torch.cuda.amp and your convert_module_to_f16?
Thanks in advance.

at the time we worked on this project, torch.cuda.amp was not yet in a stable state.


MCW - rocAL Video Feature Addition

Introduced video pipeline to convert mp4 video into sequence of frames using FFmpeg decoder.
Add support to resize the sequence of frames from the video.
Add step, stride and sequence length parameters to the video pipeline.
Add support to pass text file input to the video pipeline.
Add multi threading support to decode sequences in parallel.
Add meta data reader and label reader support for video.
Add support to obtain the frame number and timestamps of the sequences.
Introduced Sequence Rearrange.
Introduced Sequence Reader.
Add video unit tests to test the Video pipeline, Sequence Reader and Sequence Rearrange.

@fiona-gladwin sync with TOT Master to pass CI tests.

@fiona-gladwin @shobana-mcw @rrawther This PR currently doesn't even build for me when I have either OCL or HIP RPP installed.
Error is the following:
/home/svcbuild/mivisionx-pr586/MIVisionX/amd_openvx_extensions/amd_rpp/source/BilateralFilterbatchPD.cpp: In function ‘vx_status processBilateralFilterbatchPD(vx_node, _vx_reference* const*, vx_uint32)’: /home/svcbuild/mivisionx-pr586/MIVisionX/amd_openvx_extensions/amd_rpp/source/BilateralFilterbatchPD.cpp:150:26: error: ‘rppi_bilateral_filter_u8_pln1_batchPD_gpu’ was not declared in this scope              rpp_status = rppi_bilateral_filter_u8_pln1_batchPD_gpu((void *)data->hip_pSrc, data->srcDimensions, data->maxSrcDimensions, (void *)data->hip_pDst, data->kernelSize, data->sigmaI, data->sigmaS, data->nbatchSize, data->rppHandle);                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/svcbuild/mivisionx-pr586/MIVisionX/amd_openvx_extensions/amd_rpp/source/BilateralFilterbatchPD.cpp:150:26: note: suggested alternative: ‘rppi_nonlinear_filter_u8_pln1_batchPD_gpu’              rpp_status = rppi_bilateral_filter_u8_pln1_batchPD_gpu((void *)data->hip_pSrc, data->srcDimensions, data->maxSrcDimensions, (void *)data->hip_pDst, data->kernelSize, data->sigmaI, data->sigmaS, data->nbatchSize, data->rppHandle);                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           rppi_nonlinear_filter_u8_pln1_batchPD_gpu /home/svcbuild/mivisionx-pr586/MIVisionX/amd_openvx_extensions/amd_rpp/source/BilateralFilterbatchPD.cpp:154:26: error: ‘rppi_bilateral_filter_u8_pkd3_batchPD_gpu’ was not declared in this scope              rpp_status = rppi_bilateral_filter_u8_pkd3_batchPD_gpu((void *)data->hip_pSrc, data->srcDimensions, data->maxSrcDimensions, (void *)data->hip_pDst, data->kernelSize, data->sigmaI, data->sigmaS, data->nbatchSize, data->rppHandle);                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/svcbuild/mivisionx-pr586/MIVisionX/amd_openvx_extensions/amd_rpp/source/BilateralFilterbatchPD.cpp:154:26: note: suggested alternative: ‘rppi_nonlinear_filter_u8_pkd3_batchPD_gpu’              rpp_status = rppi_bilateral_filter_u8_pkd3_batchPD_gpu((void *)data->hip_pSrc, data->srcDimensions, data->maxSrcDimensions, (void *)data->hip_pDst, data->kernelSize, data->sigmaI, data->sigmaS, data->nbatchSize, data->rppHandle);                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                           rppi_nonlinear_filter_u8_pkd3_batchPD_gpu amd_openvx_extensions/amd_rpp/CMakeFiles/vx_rpp.dir/build.make:182: recipe for target 'amd_openvx_extensions/amd_rpp/CMakeFiles/vx_rpp.dir/source/BilateralFilterbatchPD.cpp.o' failed make[2]: *** [amd_openvx_extensions/amd_rpp/CMakeFiles/vx_rpp.dir/source/BilateralFilterbatchPD.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs....

@paveltc I have fixed the build errors caused by some of the API changes in RPP.  Please check if you are able to build now.

@fiona-gladwin @shobana-mcw @rrawther I have run the unit tests on this PR and found that the rali unit tests all pass for CPU, OCL and HIP.
The first two out of the three video tests also pass with some confusion about the output of the third.
I think it would be best to merge this PR as our TOT is currently broken with the RPP calls and this PR has the fix.
In the future, it would probably be better to put any fixes to problems that are blocking the master branch to a separate PR rather than adding them to a large PR like this.

@fiona-gladwin Can you please issue a separate PR for fixing TOT MIVisionX? Rather than adding it to this PR?

@fiona-gladwin Can you please issue a separate PR for fixing TOT MIVisionX? Rather than adding it to this PR?

@paveltc @rrawther I have issued a separate PR #599 for fixing the build in TOT MIVisionX

@rrawther We will have a code review and update the PR.


fix: editor namespace break

quick fix for protecting build process from editor calls mentioned in  #37

am I missing #endif ?

good catch @psarras ! just added


FIX: Edit minima/_includes/head.html to include assets/css/style.scss…

FIX: Edited minima/_includes/head.html to include assets/css/style.scss instead of assets/css/style.css, so that the file is actually found when needing to be included.  Sticking with file extension convention for other style sheets within the minima directory.  May or may not fix one or two currently open issues but not sure.

Is this related to issue #517? FYI @uxdiva.

@njsch One should always use the <link/> tag to link to the processed output file instead of a preprocessed file.


init: fix soc and board hooks doxygen comments

Documentation for *init_hooks were not generated on doc website. This was due to ill-formed doc-strings for those hooks.

It's looks fine. Push to other reviewer.

Rebased to fix conflicts. @rruuaanng should I ask another one for review ?

Hi, sorry for bothering you @nashif. @carlescufi
I've seen you were the ones who introduced this file in the project. I don't know whom to ask for a review otherwise


Unable to decode QR code that can be decoded by ZXing

Hello,
First of all, thanks for creating this library! I tried to use it to decode a QR code but the following image proved problematic:

The following error is returned when I tried to decode it: Error decoding QR Code: Could not calculate error distances
I attempted to decode the same image with all rust QR decoding libraries I found: rqrr and quircs. Unfortunately, none of them was able to.
However, I know for a fact that this QR code in the image is valid and decodable as the C++ ZXing library I'm currently using is able to decode it without issues. You can even easily try that using their online decoder that uses the lib under the hood: https://zxing.org/w/decode.jspx
Note: This issue might be related to #53 as the same error is returned.
Environment:

OS: Ubuntu 23.10
Rust: rustc 1.76.0 (07dca489a 2024-02-04)
Version: 0.5.0

Hey @Maher4Ever
Did you find a better QR scanning library for Rust? I have this one in my project, but it takes a lot of tries to get QRs, and it sometimes decodes them with wrong information.

Hi @ktecho,
I ended up using the rxing library which has proved to be the best open-source QR-scanning library. It's a Rust port of the ZXing library and it's capable of decoding everything I've thrown at it, including the QR code posted above in this issue as you can check on https://scan.rxing.org.

Hi @ktecho,
I ended up using the rxing library which has proved to be the best open-source QR-scanning library. It's a Rust port of the ZXing library and it's capable of decoding everything I've thrown at it, including the QR code posted above in this issue as you can check on https://scan.rxing.org.

I've been unable to make it work, but thanks, I may try again.

@ktecho did you find a way? Does rxing work?

@ktecho did you find a way? Does rxing work?

I couldn't make it work, so I'm still trying to improve bardecoder's output.

I couldn't make it work

What do you mean?

I couldn't make it read and decode my QRs. I don't remember why, sorry.


Add code coverage to Grunt

Hopefully there is a way to check code coverage with karma and qunit which can be reported to continuous integration tools.

There is no way to report it to any CI tool currently.  We can generate a report in Grunt though.


Create ClusterExternalSecret that create in multiple namespaces

Closes #134
This adds an ClusterExternalSecret which provides the ability to define a template for an ExternalSecret and a label selector for namespaces. When a namespace matches it will create an ExternalSecret in that namespace based on the template.

Marked as WIP because I need to test it out in a cluster, but I need to get one setup and figure out how to install my local version of ESO.

Was having a chat with @ADustyOldMuffin and we raised some points about this:

Feels a bit weird to have a namespaced resource controlling what will happen outside its own namespace, even if it is paired with a ClusterSecretStore

But at the same time creating a whole new CluseterES with the same functionality as the ES could also be argued to be too much (?)

@moolen what do you think?

My 'feels a bit weird issue' is that we would have more than one Secret bound to one ExternalSecret, which goes against some design decisions made back then.
However, the need for a way to sync the same (essentially) secret information across multiple namespaces do exist.
Maybe the ClusterES could actually create ExternalSecrets in given namespaces (through the ns selector), and act like a deployment is to a pod?

I like that

My issue would be the duplication of calls to a provider. This would generate X calls to a provider for essentially the same information.

I've also ran into an issue with cross namespace ownership for GC so if the ES or a CES gets deleted I'm not sure it would be able to take it's children with it.

My issue would be the duplication of calls to a provider. This would generate X calls to a provider for essentially the same information. I do agree it would be a better solution though, but I'm not sure if there's a way to get around the making X number of calls where X is the number of namespaces.
I can change it to go that route instead and in the future when it's working and being used explore methods of optimizing it.

Yes, I agree with you that X calls are a big issue to consider. Although, at this time, we already need to make X calls in today's setup (with the downside of the operator having to create those X ExternalSecrets in the first place). Probably the ClusterES solution can actually enable some kind of cache mechanism during reconciliation , but I think it's a separate feature on its own.
Still, all of that is my honest opinion on the PR :D Let's wait for more opinions on it before changing the direction =)

cross namespace ownership for GC

As per docs cross-namespace owner references for namespaced resources are disallowed by design. With the approach outlined by @gusfcarvalho owner references should work and gc should be able to clean up the resources properly. I like that idea of having the ClusterES creating ES in a namespaces.

My issue would be the duplication of calls to a provider.

This is absolutely valid and also relevant for other use-cases. I think this is a (long requested) feature on its own. I'm a little bit scared of cache invalidation and the high potential of introducing security issues but i'm sure we'll find a way.

Thanks @moolen @knelasevero and @gusfcarvalho I've moved to the method of a new controller for the type ClusterExternalSecret which instead will create an ES per matching namespace. I didn't add metrics as I'm not sure what we'd collect as the ES does all the work. I will add docs after we decide this is the method we'd like to go with and it all looks good.

The duplication is just from the suite_test.go which I don't think is valid. It could be changed to be more flexible, but it's fine right now.

I think it is related, you are creating another envtest environment and we probably need to reuse.
Kubeapi servers from both envtests are trying to use the same port.

Hey @ADustyOldMuffin! Just checkin-in to see if you need help here. I think we need a test suit setup to be reused for all the controllers, because of our use of Kubebuilder's Envtest.

Hello @knelasevero I should be good, I'll take a look at it today.

I removed it for now since I don't have any tests for the new controller. I'm having difficulty thinking of ways to do it since some of the code for the using tests are located specifically in the externalsecret package.

I also have had an idea for a better implementation that I think would fix the issue of polling a provider, and also provide other useful mechanisms.
Instead of creating ExternalSecrets and a new controller, we could make use of existing code by simply adding a new provider. This would be KubernetesProvider where the provider is given auth choices, a K8s API endpoint (or if left blank assumes the cluster it's in), and a namespace (default to the current namespace, or if not a ClusterSecretStore will ignore). With this you could "daisy chain" ExternalSecrets where you'd have one that synced from an outside source and then others would point to this specific SecretStore which would then fetch the K8s native secret and provide that to the ExternalSecret.
Benefits would be extended since we allow for a K8s API endpoint you'd allow cross cluster secret sync, but also solve the issue of polling a provider so many times and instead keep the calls inside the K8s api. I'm interested in @knelasevero, @moolen, and @gusfcarvalho thoughts on this.

hi @ADustyOldMuffin! My comments on it:

TL;DR
I really think an ExternalSecret with Secrets from different namespaces bound to it can lead to bad outcome for day 2 operations or for any project incubation (if we want to go to that route later on).

I do think a Kubernetes Provider makes sense, and it's actually a feature request as well here #547. And I believe you're right: using a Kubernetes Provider would sure take out the workload from the external providers itself, and, although does push that workload to the k8s API, it would minimize impacts, at least for now.
Having said that, in order to create a Secret in multiple namespaces, we would still face the same problem.
Don't get me wrong though! Your idea would work just fine if we implement it. I'm just concerned with some other possible implications.
The project originally came with the idea of having one ExternalSecret per Secret as a way to be compliant with what's going on to a specific Secret. Think of an ExternalSecret in an admin namespace, and some secrets spread out to a number of namespaces bound to this ExternalSecret. The first issue is that we would have namespacing problems here, as the ExternalSecret is a namespaced resource, but it bounds to Secrets in other namespaces, hence Ownership deletion wouldn't work out of the box (so we would have to create a reconciliation for deletion as well, which would be at best O(log(m).n) on Secrets and ExternalSecrets). Not only that, It can mislead anyone investigating why a given Secret is behaving like that, specially if the one troubleshooting it do not have access to the namespace where the ExternalSecret is in.
In my view, a way to 'template' ExternalSecrets would be the key here, and that was my idea with the whole
ClusterExternalSecret, but maybe this is an inappropriate name. Anyways, I'm thinking of something like this:
apiVersion: external-secrets.io/v1alpha1
kind: ExternalSecretTemplate # or ClusterExternalSecret or WhateverTheNameSecret
metadata:
  name: my-est
spec:
  namespaceSelector:
    matchLabels:
      foo: bar
  template:
    metadata:
      name: my-generated-es
    spec:
      refreshInterval: "15s"
      secretStoreRef:
        name: my-kubernetes-cluster-secret-store
        kind: ClusterSecretStore
      target:
        name: example-sync
      dataFrom:
      - key: example-sync

Note that this kind of example already leverages your idea of using the kubernetes backend as the main sync mechanism within the cluster, and is still compliant with the feature request itself.
A complete scenario for the whole 'having a lot of calls to the provider' would then be:

Have ExternalSecrets pointing to a provider (we now have Secret abc that we want to sync throughout the cluster)
Configure a Kubernetes ClusterSecretStore
Configure a ExternalSecretsTemplate in all namespaces where the Secret abc is needed, pointing to that Kubernetes ClusterSecretStore

I really like this approach because it makes this setup optional to the user. If reaching the provider is not an issue (for instance with a local HashiVault), they can just simplify the deployment with only the Template bit of it. On the other hand, if it's an issue, they can use the Kubernetes Provider as an cache mechanism, at least for now.

Sorry for the delay, I want to read this carefully and give my inputs. Will do as soon as I can

Sorry for the delay! Gustavo expressed my thoughts and concerns pretty well. +1 for the Kubernetes provider for cross-cluster and other use cases.

I'm pretty much down with the proposal, thanks for taking the time writing it up :heart:

I'm looking at making some tests for this, but I think this will take me a significant amount of time to setup it up as I need to also learn the testing setup since I haven't seen it before.
I can write the tests, but I need some pointers/help setting up a test suite for a new controller.

+1 for the pointers! I’ll probably need help with them as well for a different issue :p

Sounds good, I'll take a stab at it later today. I wanted to do a test as well about overwriting existing secrets to make sure that works as I expect.

@moolen So before I get decently deep into writing tests for the new controller can you take a look at the test setup to confirm that I did it correctly? I'd hate to have to change a good chunk of it and then have to redo tests.
It should be the default test and the framework for writing tests setup as well as a redo of the status field on the ClusterExternalSecret to be similar to the normal conventions.

Hey @ADustyOldMuffin ! I was sneak peeking this feature today :eyes: and I think we can do two improvements: I'll point them out in comments through the code

Regarding the tests, I think they're not yet running. I'm no expert on them, but my guess would be that you have a DescribeTable with no Entry in it

yeah, the setup looks good. just the test cases in Entry() are missing.

One more thing to keep tabs on: I believe we need to review Helm charts RBACs as well (add list to Namespaces, get,update,watch on ClusterExternalSecrets, and create on ExternalSecrets

hey @ADustyOldMuffin, how are things going?
We introduced recently some new functionalities on ESO to allow us go to CRD v1beta1. If you need any help merging main, feel free to ping me :).

@moolen Is there anyway we can ignore the api folder from the code duplication check?

I did some configuration changes on it. I believe next time a commit enters it should already ignore _types.go files in apis folder.

@gusfcarvalho Seems to have done the trick, might also try .deepcopy.go as well.

I figured also ignoring anything at the apis/* path would work as well since a majority of that code will be duplicated.

I'm trying to avoid that, as of right now actual code is residing there (for the webhooks). Added ignore on apis/*.deepcopy.go

Alright, I think this is ready for final review! Thanks for everyone's patience.

/ok-to-test sha=8c98575

@moolen Alright, so I added that snippet so it should show namespaces that successfully provisioned in the status as well as that it deleted the ES. To correct my statement I made about deletion in envtest it does "Delete" them in the sense that it marks it as deleted, but the actual object never goes away. This is what caused me issues when creating a cluster scoped CES since I needed to generate the name instead.
I'm not sure why the check-diff fails as when I run it locally I get
❯ make check-diff
18:18:31 [ OK ] Finished generating deepcopy and crds
time="2022-03-16T23:18:32Z" level=info msg="Found Chart directories [.]"
time="2022-03-16T23:18:32Z" level=info msg="Generating README Documentation for chart /helm-docs"
18:18:33 [ OK ] Finished generating helm chart files
18:19:20 [ OK ] Finished linting
18:19:21 [ .. ] checking that branch is clean
18:19:21 [ OK ] branch is clean

Awesome! Glad to finally get this in.

I'm gonna merge this and debug what the check-diff problem is :shrug:


List stellar transactions for an account

including the memofields

needed for https://github.com/threefoldtech/jumpscaleX_threebot/issues/194

b908494897b112827814a901bf09e803e5506c09


Wikipedia article seems to consider this to have websocket server functionality

https://en.wikipedia.org/wiki/Comparison_of_WebSocket_implementations
As I only see this is a client library, probably the wikipedia article needs to be updated

Where did you get the idea that Beast only offers a WebSocket client? It has both. We use Beast in rippled, which exposes a WebSocket server for clients to issue requests:
https://github.com/ripple/rippled/blob/develop/src/ripple/server/impl/SSLWSPeer.h#L48
To implement a server, just call beast::websocket::stream::accept on the socket used to receive the incoming connection, and it will read the Upgrade request and respond to it appropriately:
https://github.com/vinniefalco/Beast/blob/999e2fa0318b5982736d3ea01a418770ea802671/include/beast/websocket/stream.hpp#L312
The Beast Autobahn|Testsuite report shows both the synchronous and asynchronous modes of operation, source code for those WebSocket servers are here:
https://github.com/vinniefalco/Beast/blob/999e2fa0318b5982736d3ea01a418770ea802671/test/websocket/websocket_async_echo_peer.hpp
https://github.com/vinniefalco/Beast/blob/999e2fa0318b5982736d3ea01a418770ea802671/test/websocket/websocket_sync_echo_peer.hpp
Hope this helps!

I'm going to close this since it is not a bug


[ESP32]: PersistentStorageDelegate implementation for ACL

Problem
PersistentStorageDelegate implementation for ACL storage is missing for ESP32.
Reference issue: #10251
Change overview
Implemented PersistentStorageDelegate for ACL storage.
Testing
Used REPL to write the ACL entries and read back after device reboot. (REF:Matter repl access control)

PR #14680 moved the initialisation of the example ACL delegate into Server::Init, removed SetAccessControlDelegateStorage, and uses the persistent storage delegate owned by Server to store the ACL entries. From what I can tell ESP32's main.cpp uses Server, so this change may no longer be needed.

PR #14680 moved the initialisation of the example ACL delegate into Server::Init, removed SetAccessControlDelegateStorage, and uses the persistent storage delegate owned by Server to store the ACL entries. From what I can tell ESP32's main.cpp uses Server, so this change may no longer be needed.

@harimau-qirex thanks, I'll closing this.


fix: format-able spec

Description
Couple of fixes for non-standard asyncapi spec, mainly https://demo.dxfeed.com/dxlink-ws/debug/assets/asyncapi-12629c76.yml.

use interface{} for unsupported cases
MultiLineComment  on DescribeStruct, since some of the struct "Description" could have new-line
add MultiLineComment for struct field descriptions
use "string" for consts

Hello again @nickchen and thanks for this PR too.
Once again, looks good, so I'll just merge it :)


Correct indentation

What does this PR do?

Motivation

More

[ ] Added/updated tests
[x] Added/updated documentation

Additional Notes

Thanks :+1:
Already fixed by #5461


SAS Viya 3.5: Profile with self-signed certificate

Hello,
I try create new profile to SAS Viya 3.5. Our environment working with self-signed certificate.
Is it possible to disable certificate verification?

Regards,
Alexei

There's a VS Code bug https://github.com/microsoft/vscode/issues/181404 that has been fixed in 1.78.2
If your certificate is trusted in your system, you can update VS Code to 1.78.2

To bypass certificate check

Set environment variable NODE_TLS_REJECT_UNAUTHORIZED to 0.

 If you're connecting to a remote workspace, please set the environment variable on the remote system and kill all vscode server processes (for example, run ps -aux | grep vscode-server on the remote Linux to see the processes).

I hit this with Viya 4 as well using dev containers.  I added  "NODE_TLS_REJECT_UNAUTHORIZED": "0" to my containerEnv array in the .devcontainer /devcontainer.json file.  Then I rebuilt my container via VSCode and I was able to connect.


Allow per address access control through Keycloak groups in brokered address space

See https://github.com/EnMasseProject/enmasse/pull/565 for console part of this.


Add option to change the Actions order through drag&drop

Inside the Simulation tab / Actions section, sometimes it is useful to change the order of the Actions or to add some delays (Wait actions) between some existing Actions. In order to do that, now we need to remove the existing actions and add the new ones in the new order (it would be much faster for the end user to have the option to change the order of the existing ones).

I agree. This is a nice thing to add to the feature list.


Umbra loader crashes with "terminate called after throwing an instance of 'std::system_error'"

The Umbra loader crashes with the following error message:
Stopping Umbra container . . . Stopped.
Removing Umbra container . . . Removed.
Cleaning up . . . Cleanup done.
Creating database . . .terminate called after throwing an instance of 'std::system_error'
  what():  Operation not permitted

Exited with code exit status 139

The cause of this issue is using an old(er) host OS: Fedora 34 and Ubuntu 20.04 are known to trigger this problem. The solution is to move to a new host OS such as Ubuntu 22.04.
This was done for both the v1 and v2 branches with commits b93292cdddafa2880661c7585e5310924614c4e5 and 8e6d8fdd5c70c568cead048969e491b80ab1c705, respectively.


Killswitch

Added kill switch, file is read from dev branch of the repo. If set to True in dev branch, master branch will also be affected once this is merged to master.
Highly recommended to merge now.

👍


a few suggestions from someone using Vue + TypeScript every day for the last six months

Use class-based components, not Vue's proprietary data shape that gets passed to Vue.extend. (at least for Vue 2)

For Vuex support (types on your action / mutation payloads), use https://github.com/championswimmer/vuex-module-decorators.

Put "vetur.experimental.templateInterpolationService": true in your VS Code settings to get TypeScript analysis on your <template> in .vue files. This only works inside VS Code with Vetur installed - vue-cli-service build won't show you type errors in your <template>.

Don't forget that @someEvent='someEventHandler' isn't type safe.

Unrelated to Vue - verify the data coming into your app using IO-TS: https://github.com/gcanti/io-ts

For linting, use ESLint + Prettier. Rather than wrestling with the setup, just use the Vue CLI (or run vue ui) and then choose to add TypeScript support to your project when initially creating it and choose ESLint + Prettier. @ts-ignore is banned by default. To change that, modify your eslintConfig.rules in your package.json file. Here's mine:

  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended",
      "@vue/typescript/recommended",
      "@vue/prettier",
      "@vue/prettier/@typescript-eslint"
    ],
    "parserOptions": {
      "parser": "@typescript-eslint/parser",
      "ecmaVersion": 2020
    },
    "rules": {
      "no-debugger": 1,
      "@typescript-eslint/ban-ts-ignore": 0,
      "no-var": 1,
      "@typescript-eslint/no-array-constructor": 1,
      "@typescript-eslint/camelcase": 1,
      "@typescript-eslint/no-use-before-define": 0,
      "prefer-const": 1,
      "@typescript-eslint/no-inferrable-types": 1,
      "@typescript-eslint/no-this-alias": 1,
      "@typescript-eslint/no-unused-vars": 1,
      "@typescript-eslint/no-explicit-any": 0,
      "@typescript-eslint/no-empty-function": 0,
      "no-console": 0,
      "@typescript-eslint/no-non-null-assertion": 0
    }
  }

Nice tips! Will find a way to incorporate this all in. I'm encountering point number 4 too, know of any good patterns to workaround this?

awesome tips louisreingold !

Awesome advice! If you've got the time for a PR, it's more than welcome! Otherwise we'll get to it soon (:
As for point 1, I definitely think it should be noted that Vue 3 is moving away from this set up as shown here and here, and I personally wouldn't encourage anyone to use this approach.
Of course these are just my opinions and a section demonstrating this approach could still be included as an option!

@Roninii
I think there is a little bit of confusion between Class Components and the proposed(now abandoned) Class API. I'm still wrapping my head around all this but this is my current understanding of the whole situation.
Currently we have Vue class components - https://github.com/vuejs/vue-class-component . This is an officially maintained  extension of Vue.
This is different from the Vue 3 Class API proposal - https://github.com/vuejs/rfcs/pull/17 . Though very similar there are few subtle differences outlined in the RFC. This was in direct competition with the Composition API. As we now know, the Composition API won this battle. As linked above, this is Evan You's reasoning as to why it was dropped - https://github.com/vuejs/rfcs/pull/17#issuecomment-494242121 .
However, there are no plans to deprecate the current Vue class component. In fact, there is an open issue to adapt the Vue class component for the upcoming changes for Vue 3 - https://github.com/vuejs/vue-class-component/issues/406 .
Sorry I realise this is a bit a brain dump. Please correct me if I'm wrong anywhere.
I'm currently in the process of refactoring one of projects to use class components. So happy to start working on this section. I've been holding off because it seems to be a slightly polarising topic in Vue land. But in the context of using it for better Typescript support, I think it makes a lot of sense!

I 100% agree that this should be supported and added to the cheat sheet.
My only concern is that I think the issue thread noting why the proposal was dropped, and what the drawbacks vs. the composition api are.
It will certainly always be an option for those that prefer to use it anyways, and I think that should be encouraged in something so expressive as code. I would just like to add a note that defineComponent is the preferred and official approach.

I am in the process of refactoring an Options Vue 2 app into the class Component style. I was confused about Class Component and Class Api @chiubaca Thanks for clarifying the difference!
Personally, I prefer the class component syntax because it's formalized and mostly standard TypeScript. That allows for easier transitions between frameworks like Angular, Vue, React, etc.
The only thing I am wondering about is what the equivalent of setup() is from the Composition API but when usnig Class Components? There was a note about the constructor function not being a reliable way to run initialization code for the component when using Class Components, so I guess we can just run it in the early view lifecycle hooks. Does anyone have any info on how to do this?
Awesome writeup @louisreingold!
To add to that

Originally I was using Vuex for basic state management, but now I've dumped it and switched to Akita  which is way more robust and easy to use when paired with TypeDI. Now you have easy dependency injection with reactive state management.

I am in the process of refactoring an Options Vue 2 app into the class Component style. I was confused about Class Component and Class Api @chiubaca Thanks for clarifying the difference!
Personally, I prefer the class component syntax because it's formalized and mostly standard TypeScript. That allows for easier transitions between frameworks like Angular, Vue, React, etc.
The only thing I am wondering about is what the equivalent of setup() is from the Composition API but when usnig Class Components? There was a note about the constructor function not being a reliable way to run initialization code for the component when using Class Components, so I guess we can just run it in the early view lifecycle hooks. Does anyone have any info on how to do this?
Awesome writeup @louisreingold!
To add to that

Originally I was using Vuex for basic state management, but now I've dumped it and switched to Akita  which is way more robust and easy to use when paired with TypeDI. Now you have easy dependency injection with reactive state management.

Hello everyone, I have created a vue3 framework with ioc container, named as Cabloy-Front.
You can find it here: https://github.com/cabloy/cabloy-front
Do you agree with such a concept: Class should not be used in the view layer, but in the business layer.
Therefore, it is completely different from vue-facind-decorator or vue-class-component  that the Vue3 setup syntax sugar is still used to define vue components (such as props and emits of components), and ioc container and class are introduced only at the business level. In this way, combine the advantages of the two (function/class) to make the code more concise and elegant.
Cabloy-Front has a very important feature: With the support of ioc container, defining reactive states no longer needs ref/reactive. Without ref, naturally there is no need to write a lot of ref.value.
Demonstration: no ref/reactive, no ref.value

1. Define reactive state
Define a reactive variable count in the component and add two methods to modify its value
export class MotherPageCounter {
  count: number = 0;

  inrement() {
    this.count++;
  }

  decrement() {
    this.count--;
  }
}

2. Use reactive state
Use count in render class
export class RenderPageCounter {
  render() {
    return (

count(ref): {this.count}

        <button onClick={() => this.inrement()}>Inrement</button>
        <button onClick={() => this.decrement()}>Decrement</button>

    );
  }
}

Demonstration: dependency injection

1. Logic Reuse
Create a Counter Bean to implement the logic of count
@Local()
export class Counter {
  count: number = 0;

  inrement() {
    this.count++;
  }

  decrement() {
    this.count--;
  }
}

2. Inject and use in a component
export class MotherPageCounter {
  @Use()
  $$counter: Counter;
}

export class RenderPageCounter {
  render() {
    return (

count(ref): {this.$$counter.count}

        <button onClick={() => this.$$counter.inrement()}>Inrement</button>
        <button onClick={() => this.$$counter.decrement()}>Decrement</button>

    );
  }
}


[WIP] Edit ReactNative SDK docs since due to removal of prompts while linking

Edited SDK docs regarding changes in ReactNative SDK link process.

Please use the draft pull request feature from github: https://github.blog/2019-02-14-introducing-draft-pull-requests/


Error: Cannot find module "react-native-facebook-login"

It's trying to load index.js but it doesn't, because there is no index.js file.
Looks like <FBLogin /> is broken?  Or your documentation is not up to date?

Would you mind sharing your repository? The names did change but the example project works fine and I just set up a test project, pulled from npm and it all worked. Please make sure you following the instructions under Setup.
https://github.com/magus/react-native-facebook-login#setup


sequelize.import is not a function

Hi all,
We found a problem using this package with Sequelize since .import is deprecated
We solved with a patch in src/index.js by adding the following require:
Sequelize = require('sequelize')

and change the sequelize.import call in line 147 by this:
model = require(pathFile, function(seqInstance, Datatypes) {
    return defineCall(seqInstance, Datatypes, {
      schema: schema,
      schemaName: schema || '',
      modelName: modelName,
      // for now pass the tableName in snake case,
      // when this module is on npm we should create an option
      // to control this behaviour
      tableName: tableName,
      completeTableName: completeTableName,
      separator: SEPARATOR
    });
  })(sequelize, Sequelize);

After this, it works fine with Sequelize 6.3.0. Could you please be so kind to consider as a PR?
Thanks in advance!

Code patch included as pull request


bumping Marathon to 1.4.4

High Level Description
Changes from 1.4.3 to 1.4.4
Changes

MARATHON-7411 Include USER networked docker containers in /v2/tasks text/plain output. If no host port is specified, specify address as {containerIp}:{containerPort}. If host port is specified, {agentIp}:{hostPort}.

Fixed issues

MARATHON-7396 Marathon leader would become a zombie process in certain Zookeper failure scenarios.
Marathon would not load authentication plugins in certain situations. This has been addressed.
MARATHON-7322 /ping endpoint returns the correct content type
MARATHON-7320 Fix MAX_PER constraint for attributes.
Fix issue related to Marathon plugins and authorization for the endpoint v2/tasks

Checklist for all PR's

[x] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:

text/plain endpoint has vastly improved unit test coverage.
zk issue is difficult to test

[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): v1.4.3..v1.4.4
[x] Test Results: results
[x] Code Coverage (not available)

lgtm

The test failure in https://teamcity.mesosphere.io/viewLog.html?buildId=676128 is tracked via https://jira.mesosphere.com/browse/DCOS_OSS-862.

@mesosphere-mergebot bump-ee


Export compendium entries in module output.

This will be gated by support for compendium entries in modules by EncounterPlus.

Added


forms: steps to create

Step 1
Content:

title
questions

Step 2
Test:

input field for user
button: 'test'

Step 3
Settings:

end date
limit to 1 user
confirm section

Step 4
Action:

tombola

Step 5
Launch:

button to create news

place form in app

Same as #1273


Bio & Profile Picture

Bio
Craig Ryder is a digital anthropologist interested in startup and digital cultures, and the platformisation of information, especially in a Global South context.
His PhD research at SOAS, University of London, is an ethnographic study into the information disorder in Sri Lanka. By investigating the influence of platform affordances on the dissemination of information and how information influencers reappropriate these affordances into their everyday practices, the project looks to disentangle the digital in a nation beleaguered by ethnic conflict, fake news and censorship.
Craig is on a six month research exchange at University of Helsinki to develop skills in computational social sciences and digital methods.

Can you please still make a second pull requests where you edit the Bio to the right file: _data/2022/helsinki/participants.yml

I am unclear how to do that. Please can provide some guidance?


ERRO[0001] Can't close tar writer: io: read/write on closed pipe

H:\phrackCTF-Team-Docker-master>docker build -t "pctf-team" .
ERRO[0001] failed to dial gRPC: cannot connect to the Docker daemon. Is 'docker daemon' running on this host?: open //./pipe/docker_engine: The system cannot find the file specified.
ERRO[0001] Can't add file \?\H:\phrackCTF-Team-Docker-master\pg_hba.conf to tar: io: read/write on closed pipe
ERRO[0001] Can't close tar writer: io: read/write on closed pipe
context canceled
H:\phrackCTF-Team-Docker-master>

This docker only tested on linux, please try on linux platform first.


File (all media) handling

How does tdlib handle files?
I'm creating a chat system which utilizes tdlib, when I receive updateNewMessage, I also get which kind of message it is such as messageText or messagePhoto
When I declutter the messagePhoto fields I can't seem to find the url of the photo, see I'm a newbie in the backend so I assume messageText would contain the text and messagePhoto (or any message Media) would contain a url.
This leads me to my question how can I get the file(s) being emit by updateNewMessage's messagePhoto.
What's in my mind is I would use downloadFile and save it to my own server so I could "view" it on my own web UI.

You can download the file by passing its identifier to downloadFile.


Henhouse block

to automatically get eggs

Block and inventory created. Need proper textures.

We need final henhouse texture and block texture for alternative materials optionally.

5fd7b177848d98f9131dba152a7d59ec529652d4


docs: rearrange extensions

Signed-off-by: Lee Calcote<EMAIL_ADDRESS>Notes for Reviewers
This PR moves adapter extensions under extensibility and exposes other types of extensions.
Signed commits

[ ] Yes, I signed my commits.

🚀 Preview for commit<PHONE_NUMBER>2fd03a952397d42f218e944aa0338a at: https://659c68dc6887a9289b3fab09--meshery-docs-preview.netlify.app


Misplaced tooltips on page overflow

I'm implementing tooltips on a Vue application and basically all third party components use popper. In the design, there are no tooltip arrows and I decided to exclude the styles for them.
Well, it took me about 5 hours and going through all available Vue components to figure out that one very simple CSS rule is causing an overflow issue, coming from popper.js core:
.tooltip-arrow {
  width: 0 !important;
}

Without the rule:

With the rule:

If you don't have the rule and you've got very long text, it goes out of the page.

Seems pretty confusing that the position of the popper is determined by the position of its arrow. I think it should be the other way around.
The most stupidly wasted hours of my life... Hope that I save someone's time if they bump into this.

Thank you for your issue.
Unfortunately I can't answer to all the reported issues without a little help from you.
Please, make sure to follow the issues template when you submit a new issue, in this way I will already have all the informations needed to understand the problem and help you with it.
I'm closing this issue for now, but feel free to open a new one making sure to follow all the instructions!
Thank you for your understanding.


Updating Checkbox, Avatar, Button

Adding new styles to Checkox for Tree
Changing the size scale of Avatar
Creating an Avatar variant of button
First draft of a Tree component in Sparkle

BEWARE

Breaking change on Avatar
Tree component is not functional. Structure is there, need to port the logic.

LGTM but would love @fontanierh eyes on the Tree component to make sure it'll be extendable to how we use it :+1:

IMO no need to review as @fontanierh will probably carry out the rest later on!
Ideally @philipperolet would merge and manage migration of Avatar as he needs the Button variant avatar to complete suggest.

tree will likely require some extra but definitely not blocking to merge 👍

Very good then :)


How to handle submode notification messages?

Current behavior:
require('submode').create('WinResize', {
  mode = 'n',
  enter = '<C-w>r',
  leave = { '<Esc>', 'q', '<C-c>' },
  default = function(register)
    register('h', require('smart-splits').resize_left, { desc = 'Resize left' })
    register('j', require('smart-splits').resize_down, { desc = 'Resize down' })
    register('k', require('smart-splits').resize_up, { desc = 'Resize up' })
    register('l', require('smart-splits').resize_right, { desc = 'Resize right' })
  end,
})
vim.api.nvim_create_autocmd('User', {
  group = vim.api.nvim_create_augroup('submode-winresize-enter', {}),
  pattern = 'SubmodeEnterPost',
  callback = function(env)
    if env.data.name == 'WinResize' then
      vim.notify 'Use { h, j, k, l } to resize the window'
    end
  end,
})
vim.api.nvim_create_autocmd('User', {
  group = vim.api.nvim_create_augroup('submode-winresize-leave', {}),
  pattern = 'SubmodeLeavePost',
  callback = function(env)
    if env.data.name == 'WinResize' then
      vim.cmd [[echon '']]
    end
  end,
})

Proposal:
require('submode').create('WinResize', {
  mode = 'n',
  enter = '<C-w>r',
  leave = { '<Esc>', 'q', '<C-c>' },
  autocmd = {
    SubmodeEnterPost = function(ctx) -- give the user control through context (e.g. abort)
      vim.notify 'Use { h, j, k, l } to resize the window'
    end,
    SubmodeLeavePost = function()
      vim.cmd [[echon '']]
    end,
  },
  default = function(register)
    register('h', require('smart-splits').resize_left, { desc = 'Resize left' })
    register('j', require('smart-splits').resize_down, { desc = 'Resize down' })
    register('k', require('smart-splits').resize_up, { desc = 'Resize up' })
    register('l', require('smart-splits').resize_right, { desc = 'Resize right' })
  end,
})

I have two question for this issue:

Why this feature is needed? (just for shorthand?)
Uses autocmd only for user events this plugin provides?

Yep, this is a shorthand for a common pattern. Messages don’t necessarily need to correspond to real autocmd events — functions can be triggered near event invocations 🤔. For now, if there are two or three submodes, the user would need to create either a wrapper or a lot of boilerplate for handling events.
Additionally, messages can be managed through a different interface, such as message_enter and message_leave.

As a reference: https://github.com/mrjones2014/smart-splits.nvim?tab=readme-ov-file#hooks

Thanks for your reply!
I read your reply,  and be thinking positively for adding such feature.
Before this, got some extra question:

how the context used?

I will not support context unless it have practical usage.

Is public events is user events (SubmodeEnterPre, etc.), rignt?

After some thought, the implementation turned out to be more complex than I initially expected.
Answers
How is the context used?
By context, I refer to event.data. Initially, I considered allowing users to control behavior directly through the event object and attached callbacks. Instead, I decided to rely on a global state, as demonstrated below.
Are public events the same as user events (e.g., SubmodeEnterPre)?
I'm not entirely sure whether they should align more closely with hooks like those in smart-splits.nvim or with autocmd events. However, I lean toward mirroring user events and their naming conventions to maintain a unified and consistent interface.
Problems
Hooks should be executed after User events so that both can be used at the same time. This can be useful for defining a default template for messages using User events and overriding them later, if necessary, via hooks.
However, this introduces two problems:

how to get information for a template, such as the registered keys used or any other relevant data
how to override behavior if both a hook and a custom event are triggered

Here's an example to illustrate the issue:
require('submode').create('WinResize', {
  mode = 'n',
  enter = '<C-w>r',
  leave = { '<Esc>', 'q', '<C-c>' },
  autocmd = {
    SubmodeEnterPost = function(event)
      vim.notify 'Use { h, j, k, l } to resize the window'
    end,
    SubmodeLeavePost = function()
      vim.cmd [[echon '']]
    end,
  },
  default = function(register)
    register('h', require('smart-splits').resize_left, { desc = 'Resize left' })
    register('j', require('smart-splits').resize_down, { desc = 'Resize down' })
    register('k', require('smart-splits').resize_up, { desc = 'Resize up' })
    register('l', require('smart-splits').resize_right, { desc = 'Resize right' })
  end,
})

vim.api.nvim_create_autocmd('User', {
  group = vim.api.nvim_create_augroup('winresize-enter', {}),
  pattern = 'SubmodeEnterPost',
  callback = function(env)
    -- 1. How to get information about the registered keys?
    -- Expected output:
    --   Use { a, b, c, d } to resize the window
    --       ^^^^^^^^^^^^^^    ^^^^^^^^^^^^^^^^^

    -- 2. How to prevent an event from executing if the hook is defined?
    vim.notify 'Mode was activated'
  end,
})

Global state
I suggest to maintain a global state for the module that contains options defined by the user earlier.
For example:
require('submode.state').getSubmodeState('WinResize')

{
  mode = 'n',
  enter = '<C-w>r',
  leave = { '<Esc>', 'q', '<C-c>' },
  autocmd = {
    SubmodeEnterPost = function() end,
    SubmodeLeavePost = function() end,
  },
  keys = {
    { 'h', function() end },
    { 'j', function() end },
    { 'k', function() end },
    { 'l', function() end },
  }
}

In the code:
require('submode').create('WinResize', {
  mode = 'n',
  enter = '<C-w>r',
  leave = { '<Esc>', 'q', '<C-c>' },
  autocmd = {
    SubmodeEnterPost = function(event)
      vim.notify 'Use { h, j, k, l } to resize the window'
    end,
    SubmodeLeavePost = function()
      vim.cmd [[echon '']]
    end,
  },

  -- Perhaps users should be given the ability to pass additional data to events.
  -- Example:
  -- @type table<string, any>
  -- event = {
  --   purpose = ' to resize the window'
  -- }

  default = function(register)
    register('h', require('smart-splits').resize_left, { desc = 'Resize left' })
    register('j', require('smart-splits').resize_down, { desc = 'Resize down' })
    register('k', require('smart-splits').resize_up, { desc = 'Resize up' })
    register('l', require('smart-splits').resize_right, { desc = 'Resize right' })
  end,
})

--- @param keys [string, function][]
local function keys_to_string(keys)
  local out = '{ '
  for _, key_info in ipairs(keys) do
    local key, _ = unpack(key_info)
    out = out .. tostring(key) .. ', '
  end
  out = out:sub(1, -3) .. ' }'
  return out
end

vim.api.nvim_create_autocmd('User', {
  group = vim.api.nvim_create_augroup('winresize-enter', {}),
  pattern = 'SubmodeLeavePost',
  callback = function(e)
    -- Get the current state of a submode
    local state = require('submode.state').getSubmodeState(e.data.name)

    if not state.autocmd.SubmodeLeavePost then
      vim.notify('Use ' .. keys_to_string(state.keys) .. ' in ' .. e.data.name .. ' submode')
      -- Will print "Use { h, j, k, l } in WinResize submode"

      -- or
      -- if event.data.purpose then | if state.event.purpose then
      --   vim.notify 'Use ' .. keys_to_string(state.keys) .. purpose
      -- end
      -- Will print "Use { h, j, k, l } to resize the window"
    end
  end,
})

vim.api.nvim_create_autocmd('User', {
  group = vim.api.nvim_create_augroup('winresize-leave', {}),
  pattern = 'SubmodeEnterPost',
  callback = function(e)
    local state = require('submode.state').getSubmodeState(e.data.name)
    if not state.autocmd.SubmodeEnterPost then
      vim.cmd [[echon '']]
    end
  end,
})

Utils
What if you not only want to clear a message but also notify the user about exiting submode?
The user needs to create a custom function to clear the message.
require('submode').create('WinResize', {
  mode = 'n',
  enter = '<C-w>r',
  leave = { '<Esc>', 'q', '<C-c>' },
  autocmd = {
    SubmodeEnterPost = function(event)
      vim.notify 'Use { h, j, k, l } to resize the window'
    end,
    SubmodeLeavePost = function()
      vim.notify 'Exiting resize mode'

      -- A message from another module. Do we still need to clear it?
      --
      -- vim.defer_fn(function()
      --   vim.notify 'Some message'
      -- end, 1500)

      vim.defer_fn(function()
        -- Yet another boilerplate
	-- ...
        vim.cmd [[echon '']]
      end, 2000)
    end,
  },
  default = function(register)
    register('h', require('smart-splits').resize_left, { desc = 'Resize left' })
    register('j', require('smart-splits').resize_down, { desc = 'Resize down' })
    register('k', require('smart-splits').resize_up, { desc = 'Resize up' })
    register('l', require('smart-splits').resize_right, { desc = 'Resize right' })
  end,
})

Why bother the user with repetitive code when you can define a utility function? Here's an example:
--- @param message string
--- @param opts { delay?: integer, force_reset?: boolean }
local notify = function(message, opts)
  opts = vim.tbl_extend('keep', opts, {
    delay = nil,
    force_reset = false,
  })

  vim.notify(message)

  if opts.delay then
    vim.defer_fn(function()
      local last_message = nil
      for line in string.gmatch(vim.fn.execute 'messages', '[^\n]+') do
        last_message = line
      end

      if opts.force_reset or last_message == message then
        vim.cmd [[echon '']]
      end
    end, opts.delay)
  end
end

In the code:
local notify = require('submode.utils').notify
require('submode').create('WinResize', {
  mode = 'n',
  enter = '<C-w>r',
  leave = { '<Esc>', 'q', '<C-c>' },
  autocmd = {
    SubmodeEnterPost = function(event)
      notify 'Use { h, j, k, l } to resize the window'
    end,
    SubmodeLeavePost = function()
      notify('Exiting resize mode', { delay = 2000 })
    end,
  },
  default = function(register)
    register('h', require('smart-splits').resize_left, { desc = 'Resize left' })
    register('j', require('smart-splits').resize_down, { desc = 'Resize down' })
    register('k', require('smart-splits').resize_up, { desc = 'Resize up' })
    register('l', require('smart-splits').resize_right, { desc = 'Resize right' })
  end,
})

Optional:

Utils may contain a keys_to_string function
Utils may include a method to define events

P.S. Feel free to modify the code and rename anything as needed.

I think your code is not practical usage of state, as callback in autocmd doesn't use it .
And you suggest to introduce feature to get state, but for your situation, you will be achived it by helper functions, or just hard code keys to string:
local keys = {}
local reg_helper = function(register, lhs, rhs, opts)
    keys[#keys + 1] = lhs
    register(lhs, rhs, opts)
end

require('submode').create('WinResize', {
  mode = 'n',
  enter = '<C-w>r',
  leave = { '<Esc>', 'q', '<C-c>' },
  autocmd = {
    SubmodeEnterPost = function()
      vim.notify 'Use ' .. keys_to_string(keys) .. '  to resize the window'
    end,
  },
  default = function(register)
    reg_helper(register, 'h', require('smart-splits').resize_left, { desc = 'Resize left' })
    reg_helper(register, 'j', require('smart-splits').resize_down, { desc = 'Resize down' })
    reg_helper(register, 'k', require('smart-splits').resize_up, { desc = 'Resize up' })
    reg_helper(register, 'l', require('smart-splits').resize_right, { desc = 'Resize right' })
  end,
})

I want this plugin as small as possible, so as long as the behavior can be achived by helpers user created, I will not add api for it.
I will add hock for shorthand of SubmodeEnterPost and SubmodeLeavePost like this (I agree create autocmd for it is boring works):
require("submode").create("hoge", {
    mode = "n",
    hock = {
        on_enter = function()
            vim.notify("Enter to submode")
        end,
        on_leave = function()
            vim.notify("Leave from submode")
        end,
    },
})

If you want more than this feature, fork this repository, add feature you want and use it, or open issue with practical usage that cannot achive by this plugin and helpers you created.

I share my final thoughts.
At least delayed notifications and state tracking should be part of the plugin itself. Otherwise, using the submode plugin across multiple files with different plugins can cause issues. Users would need to create a specific configuration for the utility plugin, load it first, and extend the global object with helper functions to be used in other files.

Why is it named hock?
Dictionary

Wouldn't hooks (hook) be a better name since it's the standard term in the programming?
Dictionary

Also, it would be great to update the README.md file.


post-process: dont normalise coverage function

Function names are not normalised when put in the coverage map. They are
in fact demangled.
Fixes: https://github.com/ossf/fuzz-introspector/issues/249

Once this one is merged then we should bump on OSS-Fuzz. Will just test this through


Implement re-checking of the warnings after patching

Implement the validatePatch method in the OpenStaticAnalyzer module to check whether the issue meant to be fixed by the patch dissapears after the patching.

This might work out of the box if everything else is implemented, but let's check it.

It works now.


Be able to set an agent log format with a configuration option

Our scenario
Hello. We are using docker as the underlying technology to deploy apps and the observability stack. For all the logs we decide to use JSON format that is sent to our Loki backend.
We are trying to adopt the pyroscope Java Otel extension (that implicitly has the Java Agent) to send profiling data to our Pyroscope server.
The issue
During our testing, when we are sending the Pyroscope backend server down, all Java apps using the extension are producing lot of logs that don't align with the rest of echosystem. In our case is JSON.
This is the kind of output we are getting from the agent logger in the docker console:
2024-03-21 11:37:15.292 [ERROR] Error uploading snapshot: 502
<title>502 Bad Gateway</title>

502 Bad Gateway

nginx

Currently the agent only has this log parameter PYROSCOPE_LOG_LEVEL which is not enough for this case.
Possible solutions

As discussed in this thread  a custom logger interface implementation can be done:

https://github.com/grafana/pyroscope-java/blob/f73ebfaae1fcdfdf61d3418a78807c5b2b0[…]/agent/src/main/java/io/pyroscope/javaagent/PyroscopeAgent.java
https://github.com/grafana/pyroscope-java/blob/82b1daba0dc05b1851e6b96f2d760ab7901[…]0c49/agent/src/main/java/io/pyroscope/javaagent/api/Logger.java
However, that would require initializing the profiler outside the otel extension, and this is not available when it's running as a javagent.

Add a flag PYROSCOPE_LOG_FORMAT to set the logger format. it could be JSON or LOGFTM to align with rest of Grafana stack.

This might be related to https://github.com/grafana/pyroscope-java/issues/126.


Cooldowns, suppressions and other control features

Issue at hand
One vital feature this should have is the ability to suppress spurious notifications. If I've already been told that there is a person detected in my driveway, there isn't a need to flood my phone with 10 notifications were one or two will do. Additionally what if that person is me and I want to issue a suppression through Node-Red or some other automation platform like HA? Or perhaps it might be useful to specify time periods of various detection rules/triggers? Perhaps I only want to know if someone is in my garage in the middle of the night?
Potential solutions:

An API call or file indicator that can be passed through docker to suppress or alter alert handlers for a period of time
A trigger handler cooldown configuration that controls when it will alert or how many alerts it will send in a specified period of time.
A trigger handler time window configuration that will only use specific handlers during specific times/days/etc

Alternatives considered
I know some things could be done with BI profiles although that is BI specific and may not help with other integrations. It's not ideal to have to configure profiles for every scenario potential.

The system already supports cooldown, both at the trigger level and at the individual handler level, specifically for this reason.
See https://github.com/danecreekphotography/node-deepstackai-trigger/wiki/Defining-triggers. The very first entry in the first table is cooldownTime.
Each of the individual handlers that send text notifications (Telegram, Pushbullet, Pushover) also supports cooldownTime.
You can add more complicated logic by relying on MQTT events and doing your own handling in NodeRed based on the incoming MQTT messages. From the NodeRed side you can then call whatever you want to trigger recording (this is how I have my system set up).

I'll look into doing that with MQTT. I didn't see the parameter in the sample config and built it off that. Thanks.


fix sub implementation in link_merging.asm test

The previous version of link_merging.asm is not working correctly since the operation sub<1> implementation is wrong. With this PR, operation sub<1> implementation is fixed.

looks like some tests need updating though