Update catalog service flags

I've included these changes into https://github.com/rancher/cattle/pull/2476


Set Gradle user home outside of test project to fix flakiness in NativeServicesIntegrationTest

NativeServicesIntegrationTest#native services are initialized with systemProperties
We replace requireOwnGradleUserHomeDir() with withGradleUserHomeDir() so Gradle user home is not located in the test project dir and test project dir is always removed without file lock issues.

@bot-gradle test this

I've triggered the following builds for you. Click here to see all build failures.

PullRequestFeedback build


Adding 4 wire library

Haven't done as much as I'd like, but it's far enough along that it's usage.
Still need to fix fading between colors and I think I can do better at showing in-between colors as well by using the wires more creatively instead of just using PWM.

Haven't done as much as I'd like, but it's far enough along that it's usage.
Still need to fix fading between colors and I think I can do better at showing in-between colors as well by using the wires more creatively instead of just using PWM.


Feature/migrate conference admins

Purpose
Add migration script to replace conference administrators with personal addresses (Andrew, Katy) with a staff account (currently configured to be presentations@cos). This will ensure continuity throughout personnel changes on the presentation service.
Changes

Add migration script
Add unit test

Side effects
None expected
Note @sloria: a User with the email address STAFF_EMAIL must exist before running this script.

@AndrewSallans @KatyCain526 @saradbowman Will one of you create the account for<EMAIL_ADDRESS>

I will do this now.

Should it be presentations@cos or presentations@osf?

Let's go with cos. Easier from an mailgun point of view.

upon further discussion, @osf is better. So it will be<EMAIL_ADDRESS>Creating the account now.

done.

I see that this is merged, but I'm still listed as a contributor on projects - can someone check into this?

@sloria ^^ -- Thanks.

Just ran the migration script. @saradbowman Can you check again?

Still a contributor, womp womp.
On Mon, Mar 30, 2015 at 4:55 PM, Steven Loria<EMAIL_ADDRESS>wrote:

Just ran the migration script. @saradbowman
https://github.com/saradbowman Can you check again?
—
Reply to this email directly or view it on GitHub
https://github.com/CenterForOpenScience/osf.io/pull/2188#issuecomment-87828960
.


Idea: only make request if element is visible

Use case:
Utilizing responsive principles, different elements of my page are hidden/shown depending on the screen size. As render_async works now, my page fetches all the elements at page load time, even the ones that are currently not being shown (perhaps they are only shown on small screens, for example). Obviously this is not ideal for performance reasons.
At least for the jQuery case, we could use the elem.is(':visible') pseudo-selector (as per https://stackoverflow.com/questions/178325/how-do-i-check-if-an-element-is-hidden-in-jquery) to determine whether the element is visible, and only fetch the async partial if it is (not sure about the non-jQuery case).
What if the user loads the page full-screen, and then shrinks the window? Perhaps there is a way to handle this case as well, but I haven't done the research.
Just putting this here as a feeler for now. What do you think?

Sounds like a great idea. We could add some lazy_load flag to render_async which will do a request only when it's visible.
I love the idea, if you want to submit a PR I'd be more than glad to help out :)

When things calm down about, I might give this one a try. Good to get some validation that it would be useful for others as well.

If you don't mind adding a dependency, the "in-view" library looks like it would make this very easy:
https://github.com/camwiegert/in-view

Maybe using this library? Might be pretty quick and painless, but is a dependency so perhaps a conditional gem install or something to signify they only add this dependency if they wish to do these types of "is visible" render_async calls?
https://github.com/creativelive/appear

123

Suggestion - because we have the "refresh" event which can refresh the partial, a simple flag to inhibit the initial load of the partial would allow the developer more flexibility.
Eg.
= render_async user_comments_path(user), container_id: "user_comments", replace_container: false, lazy: true

would set up the plumbing, then later the user could fire the refresh event to load/refresh the container...
$("#user_comments").trigger("refresh");

We can do this even with the toggle functionality
Basically, you should be able to do the following:
<%= render_async user_comments_path(user),
                                    container_id: "user_comments",
                                    toggle: { selector: "#user_comments", event: "load-me" } %>

And, then you can do:
const callbackToCallOnElementVisible = () => { // I got it to work by passing this callback to the IntersectionObserver
  $("#user_comments").trigger("load-me");
}

Yes, this works great.  I was able to use the jquery.appear plugin to detect the appearance of the element, then trigger the render-async toggle event...
  $(selector).appear({container: "body"});
  $(selector).on("appear", function(event, $all_appeared_elements){ $(selector).trigger("load-me"); });


Navbar & footer Bugs

Navbar & footer

link logo to homepage
fix overlap between the popup menu and large text in hero (related to my changes) on md devices

i would love to work on this issue

Awesome. Thanks! First time? Please complete the first PR to get your creds! You can find instructions here... takes a couple minutes, and feel free to do it in the same PR 👍.
Let me know if you have any questions!


Local search engine

(This also applies to the mobile app.)
We want to make it possible to use the apps without a network connection. One major thing missing for that is the company database. It shouldn't be too hard to bundle the companies into an archive that users can download and update every once in a while. But we still need to find a client-side replacement for Typesense.
Features we need (WIP):

Typo tolerance
Return full document in results
Setting which fields to query by
Sort by setting
Highlighting
Adapter for instantsearch

Nice-to-haves for feature parity with website:

Token separators
Filtering (not sure, maybe we even need that for the apps?), faceting

Additional nice-to-haves:

Exporting the processed index (it would be nicer to distribute that instead of having each client index the data themselves)

Search engines I've considered (WIP):

https://github.com/lucaong/minisearch
https://github.com/nextapps-de/flexsearch
https://github.com/itemsapi/itemsjs
https://github.com/olivernn/lunr.js/
https://github.com/weixsong/elasticlunr.js (unmaintained)

Random idea (not sure whether it's a good one): If we don't find anything suitable, wouldn't it be possible to compile Typesense to wasm? :D

Let's do a table:

MiniSearch
FlexSearch
ItemsJS
Lunr.js
Elasticlunr.js

Typo tolerance
yes

Return full document in results
yes

Setting which fields to query by
yes

Sort by setting
no?

Highlighting
no (1, 2)

Adapter for instantsearch
no

Token separators
workaround

Filtering & faceting
workaround

This doesn't look good. I haven't filled in everything since highlighting seems to be the deciding factor here. Lunr is the only one that seems to support that at all (and only in an annoying way).


Return Value of Get-KeePassEntry

Hi,
what is the return value of Get-KeePassEntry, if the entry does not exist?

@PinPhreek currently it returns nothing if an entry does not exist.

@PinPhreek currently it returns nothing if an entry does not exist.

Thanks. Helped me a lot :)

Thanks. Helped me a lot :)


Automatically add filename for image/audio folder

Feature request
When creating a custom audio of image dataset, it would be great to automatically have access to the filename. It should be both:
a) Automatically displayed in the viewer
b) Automatically added as a column to the dataset when doing load_dataset
In diffusers our test rely quite heavily on images and audio files now and it's a bit tedious at the moment to download specific images from a datasets repo.
E.g. we have a dataset of images for tests in diffusers: https://huggingface.co/datasets/hf-internal-testing/diffusers-images
where it would be extremely nice to have direct access to the filename both visually on the datasets page (@severo ) as well as via the load_datasets function. We currently have some akward functionality to download images by path name: https://github.com/huggingface/diffusers/blob/2fb8fafa4b761f6fc144cf75a6f6f0ea6af3a1c1/src/diffusers/utils/testing_utils.py#L131
It would be much nicer to just go over load_dataset(...)
Motivation
Intuitively the filename is something people understand directly. E.g if you upload a folder of images online, it's nice if you recognize the image as well as the filename next to it directly and that you're able to use it right away.
The label on the other hand is less intuitive to understand as you haven't added it yourself.
Your contribution
Not sure if I have the time to add it myself anytime soon, but it would help us a lot for diffusers.

Also cc @anton-l

BTW the exact same holds true for the audio folder

I'm fine with adding a new column with the file name personally. Not sure how breaking this is though

@patrickvonplaten do you mean just filename or full relative path inside the data directory?
I think it shouldn't be breaking, at least I cannot come up with the case where it is. Maybe @mariosasko can?
also I think that the problem here and in general is that Image/AudioFolder has default configuration which implies automatic label creation if there is not metadata file. It can be changed when you load the dataset with load_dataset but not on it's Hub page.

also I think that the problem here and in general Image/AudioFolder has default configuration which implies automatic label creation if there is not metadata file

Yea I agree it's often the wrong default. We can also imagine adding the builder's parameters as YAML in the repo.

@lhoestq yes I also got the idea of some YAML config! not sure of what priority it is though.

but it would actually also solve this issue: https://github.com/huggingface/datasets/issues/5153

I meant just the file name (no path) that would already be super helpful IMO :-) (maybe dir+filename if there are dirs in the folder)

@patrickvonplaten one more time, to be sure I understand you.
For example, we have data structure like this:
├─ data/
│  └─ subdir/
│     └── cats/
│          ├── 0.jpg
│          ├── 1.jpg
│          └── 2.jpg
│     └── dogs/
│          ├── 0.jpg
│          ├── 1.jpg
│          └── 2.jpg
└── another_subdir/
      ├── 10.jpg
      ├── 11.jpg
      └── 12.jpg

Is it okay to provide "data/subdir/cats/0.jpg", "data/subdir/dogs/0.jpg", "data/another_subdir/10.jpg"?
I think providing just filenames might be confusing if they are not unique, as in this example.

Yes I think the relative path as you proposed makes a lot of sense :-)


Cookie Vs Token-based authentication

Article Checklist
NOTE: (1st time contributors - submit ONLY one article to get familiar with the process, quality, and style-once published, you can then submit any number of articles.)
Preliminary Checks - Formatting and Structure

[x] Does your article follow any of the suggested structure formats? - see example formats
[x] Is your article properly formatted in Markdown? - see Github Markdown guide
[x] Have you used the correct folder and file structure? - see Contribution Guidelines
[x] Is your article over 750 words? - Tool: Wordcounter.net
[x] Have you used our preferred heading structure? - H3 (###) and up
[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.
[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.
[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images
[x] In your PR - add a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.

Grammar Checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid -  Grammarly
[x] Have you checked your article for readability? - Tool: Hemmingway
[x] Have you added sources for quotes and images that aren't yours?

Technical Checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide

Contribution Guidelines
For first-time contributors and for more details, see Contributing Guidelines

This fixes #1078

This fixes #1078

@zolomohan , check my new PR

@zolomohan , check my new PR

@zolomohan this PR is ready. @hectorkambow PayPal fixed.

@hectorkambow kindly run a plagiarism check.

@ReactifyStudio  please only have one of your articles open at a time. 👍

plagiarism check done @zolomohan

@zolomohan changes implemented.

@zolomohan check the approch

@zolomohan check the approches spelling 🙏

@ReactifyStudio Good catch. Fixed it.


Add Upper Tribunal Immigration and Asylum Chamber decisions

Add utiac_decisions finder for Upper Tribunal Immigration and Asylum Chamber decisions.
Configure allowed values for judges and countries fields in schemas/utiac-decisions.json
Tested in development VM.

Depends on these PRs being merged:
https://github.com/alphagov/govuk_content_models/pull/326
https://github.com/alphagov/rummager/pull/476

I've pushed this branch to the alphagov repo to get Jenkins to run on it.

Closing for now. In collaboration with the tribunal we will change some of the facet values. Code will then be generated using the new code generator.


Handle errors when trying to open the routes data store.

Adding control state helper constants.
Handling errors when trying to open the routes data store and reporting about that via logger, if any.
Bumping version number to 0.1.0.

She looks pretty safe ! :+1: — Approved. :blue_heart:


Unable to install on Docker nginx image

Describe the bug
Cannot install this module into the official Docker nginx images.
Have tried both nginxinc/nginx-unprivileged:1.25.3 and nginx:1.25.3
Receive error message Unable to locate package nginx-module-otel when trying to build the Docker container, as shown below.
 > [gateway 2/9] RUN apt update && apt install nginx-module-otel:
0.831
0.831 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
0.831
1.185 Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
1.330 Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]
1.524 Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
1.911 Get:4 http://deb.debian.org/debian bookworm/main amd64 Packages [8787 kB]
5.141 Get:5 http://deb.debian.org/debian bookworm-updates/main amd64 Packages [12.7 kB]
5.345 Get:6 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages [134 kB]
10.69 Fetched 9185 kB in 10s (949 kB/s)
10.69 Reading package lists...
14.53 Building dependency tree...
16.01 Reading state information...
16.18 All packages are up to date.
16.23
16.23 WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
16.23
16.24 Reading package lists...
20.54 Building dependency tree...
21.51 Reading state information...
21.56 E: Unable to locate package nginx-module-otel

To reproduce
Steps to reproduce the behavior:
Try to install this otel module in an official nginx Docker container using the most basic Dockerfile.
Dockerfile:
FROM nginx:1.25.3

RUN apt update \
&& apt install nginx-module-otel

CMD sh -c 'nginx -g "daemon off;"'

docker-compose up -d gateway --build
Expected behavior
I expect the module to install.
Your environment
nginx official docker image 1.25.3
https://hub.docker.com/layers/library/nginx/1.25.3/images/sha256-161ef4b1bf7effb350a2a9625cb2b59f69d54ec6059a8a155a1438d0439c593c?context=explore
Additional context

Hi @bmerigan !
We're removing the sources.list entry when we finalize the dockerfile: https://github.com/nginxinc/docker-nginx/blob/master/mainline/debian/Dockerfile#L95
To install the otel module, you'd need to re-add the sources.list entry for the repo (no need for a key).

Ah, I see.  I guess that's to keep sizes down and unlikely to change.
Thanks for the info.

To be fair we didnt have any other request to change this behaviour, so yeah, unlikely to change.
In any case, I plan to have the official otel-enabled image published soon, so this issue will be fixed properly.

With the nudge in the right direction I have replaced the missing file and it installed ok.
And I'll keep a lookout for the new image.
Thanks.

Here is the Dockerfile which successfully installs nginx-module-otel:
FROM nginx:1.25.3

RUN apt-get update ; apt-get install lsb-release --no-install-recommends --no-install-suggests -y

# This file is needed for nginx-module-otel to be found.
RUN echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list

RUN apt-get update ; apt-get install nginx-module-otel --no-install-recommends --no-install-suggests -y

I spent several hours on this already, would be nice to include this to the readme
@zakimaksyutov thank you for the dockerfile, it works

FYI I've started a process to include the otel module as one of the variants of the official image: https://github.com/nginxinc/docker-nginx/pull/871
I'll let you know when it's accepted & available.

DockerHub image is live.
See https://hub.docker.com/_/nginx, namely "nginx:otel" and "nginx:alpine-otel" for the current tags.

Nice work @thresheek


Documentation

Hi.
Could you perhaps describe what kostal piko model/version you have tested with
and if login is required (or if it's using the default) - or if the api isnt protected at all ?
I followed the instructions, but looks like it's unable to fetch the data.
PIKO 5.5

Hi,
I am having the same issue with Piko 5.5. - would appreciate any help guidance.
Thanks a lot and best

Sorry for the late response. For some strange reason I do not get any notifications...
For some people in the community it worked, see HA forum but the somebody else in that thread told me that it does not work for him.
I will implement some authentication because up until now it worked without any authentication...

@sla89 - Thank you for getting back to us.
I will have some time to check within the next few days, and i will get back with the results.
Thanks

@sla89
The problem is probably related to an old kostal piko 5.5 installation of mine, which is from 2012 with a firmware of 3.78.
i suspect it's an older firmware which does not support /api access.
So i gues you should just add to the readme which versions it's tested with (and which are known not to work..)

I know from the community that it works for Piko 5.5 and 17.
I started asking the people to tell me which firmware versions they use. So far I know that one guy is having a Piko 17 with the following component version
UI 06.53
FW 06.17
HW 0100
PAR 03.50
and the integration works as-is.
What happens when you call the following url in your browser:
http://IP/api/dxs.json?dxsEntries=33556736

When you press F12 in your browser (edge, chrome or firefox) a new window will open.
Can you there select the network tab and visit the webinterface of your inverter, please?
Do you see something like this:

If not, your inverter does not expose the data via DXS entries and my integration does not work.
You can then try out this integration: https://github.com/rcasula/kostalpiko-homeassistant

@sla89 Unfortuantly not - it's *.fhtml page thats being rendered, no dxs.json at all.
Thank you for the help tho! :)

You are welcome. I close the issue.


"Failed to export project files" when pressing enter instead of save button

Godot version
3.3.4-stable
System information
Windows 10
Issue description
editor/editor_export.cpp:1008 - Failed to export project files
It seems that the .pck file is failing to export if I press enter to confirm the file path instead of pressing the save button on the "Export Project" -> "Save a file" menu.
I have seen the same bug for exporting for HTML5, Windows, Linux.
Steps to reproduce

Open a clean project.
Go to export menu
Add Linux
Set an export path
Click "Export Project" button
Press the enter key to confirm file path and save project (instead of pressing the "Save" button)

The export will hang and you will get the above error.
The export folder will be missing the .pck file.
Minimal reproduction project
A blank project works for me.

After testing it seems the same problem persists in 3.4-stable


New module: XMonad.Layout.SideBorderDecoration

Description
New module that allows for having a configurable border position around
windows.  Originally found in a comment by L. S. Leary in 1.  Enough
people have requested this on IRC in recent memory to warrant a proper
module.

Checklist

[x] I've read CONTRIBUTING.md

[x] I've considered how to best test these changes (property, unit,
manually, ...) and concluded: Tested this manually; seems to work on every side.

[x] I updated the CHANGES.md file

Some quick points:

Since these are border replacements rather than title bars, we don't really want fonts being rendered. In the original comment, I said you can use the same font colour as the background, but that's a hack—can't we provide a const "" shrinker instead?
It would be nice to have a more convenient interface that doesn't require as much fiddling from non-Haskellers; a sideBorder function that just takes two border colours and a width and does the rest.
Those three key config values are duplicated in the standard config, so we could provide a config modifier that actually reads them from there before modifying the borderWidth and layoutHook accordingly.

Thanks, these are good points.  I pushed some thoughts in a80f7532018ad2fc7d94826544fc0ee3c4f37963 (docs TBD).

* Those three key config values are duplicated in the standard config, so we could provide a config modifier that actually reads them from there before modifying the `borderWidth` and `layoutHook` accordingly.

I was thinking about this when copying over the module, but decided against it at first.  The problem is that we can'd use ExtensibleConf here, since we have a type-changing update to XConfig, which doesn't play very nice with that interface.  I don't think there is a clean way to ensure that users are only applying this once to their config.  On the other hand, users are quite used to adding layout modifiers.  Maybe it doesn't matter if the documentation explicitly says to add only the combinator though; it's sideBorder in a80f7532018ad2fc7d94826544fc0ee3c4f37963 for reference.

Okay, documentation should also be done now (I hope)

I still need to have a proper look, but I might not be able to do so in the next day or two, so I'll just put in my current thoughts now:

I'm not that familiar with XC, but it seems like something of an oversight that once can't touch the layoutHook. I've mocked up a solution of sorts: https://gist.github.com/LSLeary/4b2a45a519e8ca961fabacd35894b7d4#file-oncel-hs
Perhaps it merits a PR of its own?
While it is good to have the combinator setting borderWidth = 0, as is, it doesn't give us much over the layout modifier. Most of my point for suggesting this was that it could become sideBorder :: Direction2D -> XConfig l -> XConfig (SideBorder l), seamlessly reinterpreting the config. It's perhaps a problem that (without onceL) it could be applied twice and see borderWidth = 0, but I don't think that's such a big issue. Of course, it should admit to supporting only a single application.
At this point, you should probably add yourself to the copyright, since you've written most of it.
I see you using the word either in a couple of places, which suggests only two directions. Perhaps you want any.

I still need to have a proper look, but I might not be able to do so in the next day or two, so I'll just put in my current thoughts now:

I'm not that familiar with XC, but it seems like something of an oversight that once can't touch the layoutHook. I've mocked up a solution of sorts: https://gist.github.com/LSLeary/4b2a45a519e8ca961fabacd35894b7d4#file-oncel-hs
Perhaps it merits a PR of its own?

Oh, indeed.  I didn't think this through far enough to realise that all we need is an instance of LayoutClass for an either-like layout type!  I definitely think that this is worth a PR.

While it is good to have the combinator setting borderWidth = 0, as is, it doesn't give us much over the layout modifier. Most of my point for suggesting this was that it could become sideBorder :: Direction2D -> XConfig l -> XConfig (SideBorder l), seamlessly reinterpreting the config. It's perhaps a problem that (without onceL) it could be applied twice and see borderWidth = 0, but I don't think that's such a big issue. Of course, it should admit to supporting only a single application.

Probably not, but we've sort of slowly been transferring over to telling users to use combinators for most things that this seems like a natural thing to do.  The layout modifier is exported either way, so it shouldn't matter much.  I'll update the docs to remind users not to apply it multiple times (or in combination with the layout modifier) though; best to be explicit about things like that.

I see you using the word either in a couple of places, which suggests only two directions. Perhaps you want any.

:+1:

Thanks for the review!


[owners] Add HSTS (Strict Transport Security)

Since this is hosted by App Engine, here's the relevant segment from AppEngine's faq.

It is possible to use Strict-Transport-Security in App Engine. In order to add HTTP Strict-Transport-Security headers (HSTS) to your app, you must implement the headers within your app's code, not within your app's config file (app.yaml or appengine-web.xml).

https://cloud.google.com/appengine/kb/

Unclear how necessary this is at the time being, since there is no authentication/it's public-facing and GitHub authenticates with PSK

It's a good extra step, regardless of how "important" the apps are, but don't overthink it. Unless it's a simple flag in GAE config, make this a fixit week task and forget about it until next year :)

That was my thought


Reference to calculated fields in reactive geometry

It is possible to reference the "width" and "height" fields of a mark in a referencing mark that is defined only using "x", "y", "x2", and "y2", as follows:
{
  "padding": "strict",
  "marks": [
    {
      "name": "mark_name",
      "type": "rect",
      "properties": {
        "update": {
          "x": { "group": "width", "mult": 0.2 },
          "y": { "group": "height", "mult": 0.2 },
          "x2": { "group": "width", "mult": 0.5 },
          "y2": { "group": "height", "mult": 0.5 },
          "opacity": { "value": 0.5 },
          "fill": { "value": "#9955AA" }
        }
      }
    },
    {
      "type": "rect",
      "from": { "mark": "mark_name" },
      "properties": {
        "update": {
          "x": { "field": "x2" },
          "y": { "field": "y2" },
          "width": { "field": "width", "mult": 0.75 },
          "height": { "field": "height", "mult": 1.0 },
          "fill": { "value": "#55BC82" },
          "opacity": { "value": 0.5 }
        }
      }
    }
  ]
}

However, it isn't possible to reference "x2" and "y2" of a mark that is defined only by "x", "y", "width", and "height". The following spec doesn't lay out the second mark relative to the first one:
{
  "padding": "strict",
  "marks": [
    {
      "name": "mark_name",
      "type": "rect",
      "properties": {
        "update": {
          "x": { "group": "width", "mult": 0.2 },
          "y": { "group": "height", "mult": 0.2 },
          "width": { "group": "width", "mult": 0.5 },
          "height": { "group": "height", "mult": 0.5 },
          "opacity": { "value": 0.5 },
          "fill": { "value": "#9955AA" }
        }
      }
    },
    {
      "type": "rect",
      "from": { "mark": "mark_name" },
      "properties": {
        "update": {
          "x": { "field": "x2" },
          "y": { "field": "y2" },
          "width": { "field": "width", "mult": 0.75 },
          "height": { "field": "height", "mult": 1.0 },
          "fill": { "value": "#55BC82" },
          "opacity": { "value": 0.5 }
        }
      }
    }
  ]
}

It would be especially useful to be able to define mark1 with just "x" and "width" and then define mark2 as being relative to mark1's "x2", since it would allow doing things like positioning text just to the right of a mark while still permitting the original mark to be defined just by "x" and "width".

I'm wary of always calculating x, x2, width and y, y2, height regardless of which two are specified for performance reasons. Our current set up only calculates additional properties when necessary for the renderer (i.e., as you pointed out, when x, x2 or y, y2 are specified).
The use-case you described is still expressible using transforms, like so:
"from": {
  "mark": "mark_name",
  "transform": [{"type": "filter", "field": "x2", "expr": "datum.x + datum.width"}]
},


replace Travis CI with GitHub Actions CI

Motivation
https://arstechnica.com/information-technology/2021/09/travis-ci-flaw-exposed-secrets-for-thousands-of-open-source-projects/
Changes

replace Travis CI with GitHub Actions CI workflow

/kind

Fixes #

Release Note

Docs

I provided another PR for the same topic which is covering more cases: https://github.com/rhuss/jolokia/pull/522

Sorry folks, for the delay, I'm currently buried by work and it does not look like it will get better until the end of the year;-(
I we can agree that #522 is more suitable, happy to merge it.

We have merged #522 so we should be good. Closing this PR for now.


clear data validation

PR Details
Description
add a method to clear data validation
Related Issue
#1254
Motivation and Context
provide a method to clear data validation give by worksheet name when need
How Has This Been Tested
execute TestClearDataValidation
Types of changes

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

Checklist

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

I'm not sure if need to traverse DeleteDataValidation's second parameter when make it optional, now I just consider the first element, that is sqref[0].

Codecov Report

Merging #1255 (bede170) into master (7f570c7) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##           master    #1255   +/-   ##
=======================================
  Coverage   98.43%   98.43%
=======================================
  Files          31       31
  Lines       22908    22912    +4
=======================================
+ Hits        22550    22554    +4
  Misses        239      239
  Partials      119      119

Flag
Coverage Δ

unittests
98.43% <100.00%> (+<0.01%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

datavalidation.go
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

LGTM, thanks for your contribution.


self should not be assignable in init method

Are you using the latest released (or pre-released, a.k.a. "next") version?

[X] I'm using the latest Tact version

Tact source code
contract Test {
   a: Int;

   init() {
      let contract_copy = self;
      self.a = 5;
      self = contract_copy;    // Does this line "uninitialize" self.a?
   }
}

Relevant Tact/build system log output
This is the generated func code of the init method:

(int) $Test$_contract_init() impure inline_ref {
    var (($self'a)) = (null());
    var ($contract_copy'a) = ($self'a);
    $self'a = 5;
    ($self'a) = ($contract_copy'a);
    return ($self'a);
}

What happened?
Field $self'a will be initialized to null() after $Test$_contract_init executes. Is null() a valid value for an Int?
What did you expect?
Probably an error message explaining that self should not be assigned in the init method.
Steps to reproduce
No response
How do you run Tact?
Tact CLI
Anything else?
No response

Actually, reading the entire contract state using self should not be allowed in the init function because someone could write something like this:
contract Test {
   a: Int;

   init() {
      let contract_copy = self;
      self.a = 5;
      self.a = contract_copy.a;
   }
}

which has the same effect. Note we are not assigning the variable self this time: we are just reading it.
Reading variable self in init does not make sense, because init is supposed to initialize the contract. Therefore, self by itself does not have any meaning until init finishes execution!
However, it is OK to read specific fields inside init, like self.a, as long as those fields have been initialized. For example, the compiler correctly rejects this:
contract Test {
   a: Int;

   init() {
      let a_copy = self.a;
      self.a = 5;
      self.a = a_copy;
   }
}

because self.a has not been initialized.


Web App with Individual Auth uses Web Helper instead of TagHelper

From @phenning on July 6, 2017 17:26
In the Individual Auth template for Core Web Application, there is exactly one Web Helper, at line 38 in Views/Accout/Login.cshtml.
This should be changed to a TagHelper.
                        <div class="checkbox">
                            <label asp-for="RememberMe">
                                <input asp-for="RememberMe" />
                                @Html.DisplayNameFor(m => m.RememberMe)
                            </label>
                        </div>

Copied from original issue: dotnet/templating#1024

No tag helper currently exists for this. If we add one, we can consider it. Here's the related issue: https://github.com/aspnet/Mvc/issues/6782

This issue was moved to aspnet/Identity#1665


Update scalacheck-magnolia to 0.3.1

Updates com.github.chocpanda:scalacheck-magnolia from 0.2.2 to 0.3.1.
Release Notes/Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.chocpanda", artifactId = "scalacheck-magnolia" } ]

labels: semver-minor

Superseded by #103.


DiagnosticCode.create is missing

Testing microsoft/vscode#93754
DiagnosticCode.create should be added for consistency

Actually I am not sure anymore if adding all these create function was a good idea in the first place. Due to the new JS features I thing they are not very valuable anymore.

Also depend on what we decide for https://github.com/microsoft/vscode-languageserver-node/issues/601

The diagnostic code got removed in favour of the new codeDescription property which is optional.


as_dict() behaves differently in package project vs. in editor

USTRUCT()
struct FSomeDimensions
{
GENERATED_BODY()

UPROPERTY()
uint32 height = 3;

UPROPERTY()
uint32 width = 2;

UPROPERTY()
uint8 another_var = 0;
}

# some_dimensions is the USTRUCT object
the_dims = some_dimensions.as_dict()
for k in the_dims.keys():
  ue.log(k)

In the editor I get "height" and "width" and "another_var" - in a packaged product I get "Height" and "Width" and "another_var".  Variables "height" and "width" become capitalized but the others did not.

Hi, what happens if you capitalize the USTRUCT fields ? Does the behaviour became cosistent ?


Incorrect test color on schedule view

On the Schedule view for a test schedule created, there was a class with a blue background, but red text

Error seems to only occur with this specific schedule. Have not been able to see error happen with any alternative set up of schedule. Always happen when this schedule is constructed this exact way, even color scheme is different.

Issue has resolved, waiting for a conflicting previous PR to be finished before being able to correctly implement changes

PR submitted, change was made to correct the faulty color array, and to account for more classes than available colors

Fixed as of #50


game crashes when i open the options menu

im using 1.20.4 1.3.7 fabric

Same issue

@dudeman349 see #28. Your installation could be missing the MidnightLib mod. If it persists, reopen the issue and attach a crash report.
Thanks!


Browser name shows up as "Electron" in macOS's prompt

Did you run from a packaged build?

No, production.

This is basically the same issue as #38 I think.


add rkt log testing

test that rkt logs aren't collected when danger is false, and that the command is correct when they are being collected.
also simplifies ./test a little.

Pushes coverage for the rkt plugin up to 50% :)

Mo tests, mo problems (found).


library "libjsc.so" not found

Hi author, thanks for this awesome library as an alternative to async storage.
I encountered this issue after upgrading from 1.1.0 to 1.4.0 on android. Build was succeeded but app crashed after launching in Release mode.
05-31 18:41:31.804 30033 30160 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libjsc.so" not found
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at java.lang.System.loadLibrary(System.java:1672)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.reactnativeleveldb.LeveldbModule.<clinit>(LeveldbModule.java:11)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.reactnativeleveldb.LeveldbPackage.createNativeModules(LeveldbPackage.java:19)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.facebook.react.ReactPackageHelper.getNativeModuleIterator(ReactPackageHelper.java:42)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.facebook.react.NativeModuleRegistryBuilder.processPackage(NativeModuleRegistryBuilder.java:42)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.facebook.react.ReactInstanceManager.processPackage(ReactInstanceManager.java:1347)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.facebook.react.ReactInstanceManager.processPackages(ReactInstanceManager.java:1318)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:1240)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.facebook.react.ReactInstanceManager.access$1100(ReactInstanceManager.java:131)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at com.facebook.react.ReactInstanceManager$5.run(ReactInstanceManager.java:1023)
05-31 18:41:31.804 30033 30160 E AndroidRuntime: 	at java.lang.Thread.run(Thread.java:784)

I guess it has to do with this commit https://github.com/greentriangle/react-native-leveldb/commit/a2658307c2813ef8901e695a30c9c3697dd64d0e#diff-59c313fb0dfe322996885368a5a90d8f8400c2576bb64acc60467c2e79ecd2e9R42 (since version 1.3.0)
Any feedback on the issue is appreciated.
    react: 17.0.1 => 17.0.1
    react-native: 0.64.0 => 0.64.0
    enableHermes: true

You don't do any runtime specific stuff, do you? In that case it should build fine even if you didn't mention anything about hermes in your buildfile. @chinloongtan can you make sure that this is actually the error? There might be some other error some lines above or below the one you sent.

Hi @chinloongtan , did you find a solution to this issue, by any chance? I am now faced with the same issue, and would like to address fix it.


IPFS for VFX

Evaluate whether https://ipfs.io/ is a good fit.
Motivation
One of the problems Mindbender is having is having data accessible by remote freelancers. The data is either (1) hosted and served locally, meaning a single point of access for any number of freelancers or (2) hosted in the cloud, such as Google Drive, in which case data is duplicated (by Google) in order to remain available at reasonable speed.
With IPFS, it's possible data could be written into a "global filesystem" by both studio and artist, and accessed as though it were local. Only when the data is required is it ever downloaded and once downloaded increases the number of hosts able to serve the data, increasing performance over time. It also prevents data (even individual chunks within individual files) from ever being duplicated, reducing the amount of data needing to be downloaded. Consider the number of versions of a file and how much of each version contain identical data. Like the model of a rig, when only the rig received updates.

From what I can gather it's the same as https://www.resilio.com ?

It's not quite about file syncing, I think it's closer to bitorrent as a file-system. Have a look at their video.


core-image-pelux: turn recipe into a class

Modify meta-pelux to make the "core-image-pelux" recipe into a bbclass,
rather than a recipe.
Having core-image-pelux be a bbclass rather than a recipe will allow us
to use the "inherit" directive in our image files, rather than the
"require" directive. "inherit" is preferred, since it does not require
us to specify the path to the bbclass.
Update the existing recipes to work with this change.

@zeenix care to comment on this commit message? :)

Fixes #34 .

@GordanM I guess you meant that Alberto should add Fixes #34 to the commit log?

@zeenix the Fixes #34 is not needed in the commit log. I've just linked the issues by stating #34 here in the comments.

didn't we decide on having some sort of trace in the commit logs to issues?

I update che branch. I added "Fixes #34" in the commit message too, I also think it's a good to have it there.

@breakreturn can you please check the comments above regarding the issue tracing?

@GordanM Most discussions that have been difficult to resolve on this topic have been when the situation involves an internal issue tracker and referencing that in the commit. That's not something I'd say we should do.
In this case, where we use the open issue tracker I don't particularly mind referencing it. However, I do not think we have any solid strategy or plan wrt exactly how to use the open issue tracker or reference it so I can't say what the consensus is here. This is fine for me as it is.

Thanks @breakreturn, essentially that is the same thing I've told to @zeenix IRL: The majority of our backlog is found in an internal issue tracker and that is the reason why I find having references to github issues slightly redundant, as there is no common pattern.


Test migration of multivectors and sparse vectors

All Submissions:

[ ] Contributions should target the dev branch. Did you create your branch from dev?
[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

[ ] Does your submission pass tests?
[ ] Have you installed pre-commit with pip3 install pre-commit and set up hooks with pre-commit install?

Changes to Core Features:

[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully ran tests with your changes locally?

There was a fix for collection comparison: #702
In order the CI to be green, we need to rebase this branch

@hh-space-invader multivectors are only available as of qdrant v1.10, we should add a version check to multivectors related test
here is a link to a method which has a version check
https://github.com/qdrant/qdrant-client/blob/e74fa7607428a29a3ea70c3705722a5a170a9d15/tests/test_fastembed.py#L169


YJAF and YJSM Repo Access for Craig Ashford

Use this issue template if you do not feel comfortable raising a PR with the required changes to files in the terraform/ directory.
Please supply all the requested information, so that your request can be processed as quickly as possible.
Which MoJ repository are you requesting access to (e.g. money-to-prisoners)?
yjsm-ui
yjaf-app-template/
yjaf-assets/
yjaf-auth/
yjaf-bands/
yjaf-bed-unlock/
yjaf-case/
yjaf-cmm/
yjaf-conversions/
yjaf-csppi/
yjaf-dal/
yjaf-documents/
yjaf-gateway/
yjaf-mule-hub-connector/
yjaf-mule-mis-processor/
yjaf-nginx-gateway/
yjaf-nginx-pentaho/
yjaf-placements/
yjaf-refdata/
yjaf-returns/
yjaf-sentences/
yjaf-transfers/
yjaf-utilities/
yjaf-views/
yjaf-workflow/
yjaf-yp/
yjsm-hub/
yjsm-hubadmin/
yjaf-ui/
yjsm-hub-svc/
What is the GitHub username of the person who needs access?
craig-ashford
What is their full name?
Craig Ashford
What is their email address?
<EMAIL_ADDRESS>What company/organisation do they belong to (e.g. "MadeTech", "Department for Education")?
NEC SWS
What level of access should they have?

[x] Read
[ ] Triage
[x] Write
[ ] Maintain
[ ] Admin

Why is this access being requested?
New front end developer on YJAF team
Which MoJ team/person is responsible for this request? This must be someone with a "*.justice.gov.uk" email address.
Jon Dent
<EMAIL_ADDRESS>Review date
Date after which this collaborator's access should be reviewed. This should be a date in the format: 2021-01-15, no more than one year into the future.
07/02/2023

Hi there,
Following closure of the below request, Craig has advised he cannot access
the yjaf-ui repo. This was part of yesterday's request. Please could
someone check this?
Many thanks
Jo
Jo Harvey
Delivery Manager
Public Services - YJAF
M: 07851 531771
E: @.***
W: www.necsws.com
NEC Software Solutions
Please consider the environment before printing this email
On Tue, 8 Feb 2022 at 12:59, ben-al @.***> wrote:

Closed #457
https://github.com/ministryofjustice/github-collaborators/issues/457.
—
Reply to this email directly, view it on GitHub
https://github.com/ministryofjustice/github-collaborators/issues/457#event-6026596789,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVDC2J742FQRM3O6OWTLKZLU2EHUHANCNFSM5NZ6VYGA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
<ministryofjustice/github-collaborators/issue/457/issue_event/6026596789@
github.com>

--
This email is sent on behalf of NEC Software Solutions UK Limited and its
associated companies (together "NEC Software Solutions") and is strictly
confidential and intended solely for the addressee(s). Full details of
those companies can be found at
https://www.necsws.com/group-company-details/
https://www.necsws.com/group-company-details/
If you are not the intended
recipient of this email you must: (i) not disclose, copy or distribute its
contents to any other person nor use its contents in any way or you may be
acting unlawfully; (ii) contact NEC Software Solutions immediately on
+44(0)1442 768445 quoting the name of the sender and the addressee then
delete it from your system.
NEC Software Solutions has taken reasonable
precautions to ensure that no viruses are contained in this email, but does
not accept any responsibility once this email has been transmitted.  You
should scan attachments (if any) for viruses.

Hi Jo,
Looks like the permission wasn't correct. Have updated the code and sent a
manual invite to Craig. Should short the issue.
Any issues let me know
Tony
On Wed, 9 Feb 2022 at 12:51, Jo Harvey @.***> wrote:

Hi there,
Following closure of the below request, Craig has advised he cannot access
the yjaf-ui repo. This was part of yesterday's request. Please could
someone check this?
Many thanks
Jo
Jo Harvey
Delivery Manager
Public Services - YJAF
M: 07851 531771
E: @.***
W: www.necsws.com
NEC Software Solutions
Please consider the environment before printing this email
On Tue, 8 Feb 2022 at 12:59, ben-al @.***> wrote:

Closed #457
https://github.com/ministryofjustice/github-collaborators/issues/457.
—
Reply to this email directly, view it on GitHub
https://github.com/ministryofjustice/github-collaborators/issues/457#event-6026596789,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVDC2J742FQRM3O6OWTLKZLU2EHUHANCNFSM5NZ6VYGA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
<ministryofjustice/github-collaborators/issue/457/issue_event/6026596789@
github.com>

This email is sent on behalf of NEC Software Solutions UK Limited and its
associated companies (together "NEC Software Solutions") and is strictly
confidential and intended solely for the addressee(s). Full details of
those companies can be found at
https://www.necsws.com/group-company-details/
If you are not the intended recipient of this email you must: (i) not
disclose, copy or distribute its contents to any other person nor use its
contents in any way or you may be acting unlawfully; (ii) contact NEC
Software Solutions immediately on +44(0)1442 768445 quoting the name of the
sender and the addressee then delete it from your system.
NEC Software Solutions has taken reasonable precautions to ensure that no
viruses are contained in this email, but does not accept any responsibility
once this email has been transmitted.  You should scan attachments (if any)
for viruses.

Great thanks Tony, that has sorted it.
Jo Harvey
Delivery Manager
Public Services - YJAF
M: 07851 531771
E: @.***
W: www.necsws.com
NEC Software Solutions
Please consider the environment before printing this email
On Wed, 9 Feb 2022 at 14:10, Antony Bishop <
@.***> wrote:

Hi Jo,
Looks like the permission wasn't correct. Have updated the code and sent a
manual invite to Craig. Should short the issue.
Any issues let me know
Tony
On Wed, 9 Feb 2022 at 12:51, Jo Harvey @.***> wrote:

Hi there,
Following closure of the below request, Craig has advised he cannot
access the yjaf-ui repo. This was part of yesterday's request. Please could
someone check this?
Many thanks
Jo
Jo Harvey
Delivery Manager
Public Services - YJAF
M: 07851 531771
E: @.***
W: www.necsws.com
NEC Software Solutions
Please consider the environment before printing this email
On Tue, 8 Feb 2022 at 12:59, ben-al @.***> wrote:

Closed #457
https://github.com/ministryofjustice/github-collaborators/issues/457.
—
Reply to this email directly, view it on GitHub
https://github.com/ministryofjustice/github-collaborators/issues/457#event-6026596789,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVDC2J742FQRM3O6OWTLKZLU2EHUHANCNFSM5NZ6VYGA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
<ministryofjustice/github-collaborators/issue/457/issue_event/6026596789
@github.com>

This email is sent on behalf of NEC Software Solutions UK Limited and its
associated companies (together "NEC Software Solutions") and is strictly
confidential and intended solely for the addressee(s). Full details of
those companies can be found at
https://www.necsws.com/group-company-details/
If you are not the intended recipient of this email you must: (i) not
disclose, copy or distribute its contents to any other person nor use its
contents in any way or you may be acting unlawfully; (ii) contact NEC
Software Solutions immediately on +44(0)1442 768445 quoting the name of the
sender and the addressee then delete it from your system.
NEC Software Solutions has taken reasonable precautions to ensure that no
viruses are contained in this email, but does not accept any responsibility
once this email has been transmitted.  You should scan attachments (if any)
for viruses.

--
This email is sent on behalf of NEC Software Solutions UK Limited and its
associated companies (together "NEC Software Solutions") and is strictly
confidential and intended solely for the addressee(s). Full details of
those companies can be found at
https://www.necsws.com/group-company-details/
https://www.necsws.com/group-company-details/
If you are not the intended
recipient of this email you must: (i) not disclose, copy or distribute its
contents to any other person nor use its contents in any way or you may be
acting unlawfully; (ii) contact NEC Software Solutions immediately on
+44(0)1442 768445 quoting the name of the sender and the addressee then
delete it from your system.
NEC Software Solutions has taken reasonable
precautions to ensure that no viruses are contained in this email, but does
not accept any responsibility once this email has been transmitted.  You
should scan attachments (if any) for viruses.

Hello, Craig has lost his access to the yjaf-ui repo (requested and previously granted as part of this issue), please could someone investigate?

Hi @joharveynec not sure why as he is on the code. Have added Craig back manually.

Hi I'm running the automation at the moment that checks and add users to the repo's, we are doing some cleaning of users at the moment and we had disabled some previous automation and found a db issue which might have caused Craig to be removed from that repo

The reason is the review data has passed, a new PR is required for this specific repo

I have opened a PR to resolve this, access will be granted after it is merged.
PR: https://github.com/ministryofjustice/github-collaborators/pull/462


Update on the project?

I saw master was renamed to legacy. I read the 1.0 announcement, and still have a couple of questions about the project!

Last blogpost was over 3 months ago, and says the launch was set for mid-Q3 2023. Is there an update to the launch schedule?
As dev on the legacy branch has essentially stopped, I'm very curious how the 1.0 product will be priced. Will there be a selfhosted/homelab version, or is going to be enterprise only?

Wishing you best of luck, hope there will be some news soon.

Thanks for the questions @luckman212.
I'll have PR(s) open to answer these in more detail and will reference this issue. In meantime, I hope the below answers are helpful:

Will there be a selfhosted/homelab version

Our license won't prevent you from self-hosting all of the new components in 1.0, but we won't be able to dedicate the resources to make the whole experience a smooth one at launch. The data plane components are much easier to self-host in 1.0 (all you need is a couple ENV vars), but the control plane is much trickier in many ways. For example: publishing client applications in the respective App Stores means users can't easily control which version is installed on their devices, which translates to a very complex version compatibility matrix between cloud and self-hosted control planes APIs and client application versions we can't rollback.
We're still evaluating the feasibility of this, and may be able to support it down the line if we find a sustainable business use case. There will be developer-focused build from source instructions, so you're free to experiment. There will also be a substantial free (as in beer) cloud-managed tier.

cc @jefferenced for visibility

Okay, sounds like you're pretty close to announcing. I appreciate the info and as I said before, good luck!

Updates will continue to trickle in over the next few weeks... stay tuned.


pxt serve throwing an error on core---vm build

When I run pxt serve (without --rebundle) in the pxt-arcade folder, I'm unable to get past the libs/core---vm build. This build step emits an invalid enums.d.ts file. This is the file it generates:
// Auto-generated. Do not edit.

    declare const enum CallType {

    static inline void callifaceCore(FiberContext *ctx, unsigned numArgs, unsigned ifaceIdx,
    CallType getset) {
    auto obj = ctx->sp[numArgs - 1];
    if (!isPointer(obj))
    failedCast(obj);
    auto vt = getVTable((RefObject *)obj);
    uint32_t mult = vt->ifaceHashMult;

    if (!mult) {
    if (vt->classNo == BuiltInType::RefMap) {
    if (getset == CallType::Set) {
    pxtrt::mapSet((RefMap *)obj, ifaceIdx, ctx->sp[0]);
    POP(2); // and pop arguments
    }

// Auto-generated. Do not edit. Really.

I'm on master branch in all repos, no local changes, with pxt and pxt-common-packages symlinked to pxt-arcade.
What am I doing wrong/how can I fix?

Could you double check you have latest pxt-common-packages symlinked under node modules? This was fixed there with https://github.com/microsoft/pxt-common-packages/pull/1167

They appear to be symlinked:

Ok I re-symlinked them and now it is building. Thanks @jwunderl !

Sort of related question: how are auto-generated files like enums.d.ts regenerated after running pxt clean?

er, make that pxt cleangen

There are a few different places generating those - enums.d.ts should be emitted in getCompileOptionsAsync after being built in cpp.ts I believe, but there's also a spot generating a big dal enum and another spot handling simulator only shims

I'm trying to get a good understanding of how the libs are built. Not seeing the whole picture yet :)
Should this work? In pxt-arcade folder:
$ pxt cleangen
$ pxt serve

When I try it, I see errors about missing files:
?(1,1): error TS5012: Cannot read file 'shims.d.ts': File not found: shims.d.ts.

If I also run pxt cleangen in the pxt-common-packages folder, then there are additional errors.


Makes release start as draft, which implies manual analysis

Right now, we can archive without knowing if it will succeed or not.
This marks the release as a draft, resulting in us analyzing the results
before publishing them. The test is trivial, it just runs envoy --version.

to test this for real will be merging, then cutting v1.20.1 which is just out. then, look at the release which should be draft even though some tests will fail (ex because homebrew isn't up to date for v1.20.1.
To remove the manual step (publishing a draft) would require some technical work to figure out which platforms we expect to be available. That or silently accept any platform that isn't yet available..

On second thought, I think marking draft makes busywork and doesn't lead to any action we can remedy. For example, if it starts to fail on a new version of macOS -> envoy issue which likely won't resolve for a month or more.
I'll switch the logic back, but keep the tests here. They will often fail due to missing OS/x (pending homebrew PR), or some known OS limitation of envoy, but still it will be helpful to know what works or doesn't.

updating the desc. I'll give it a try

watching https://github.com/tetratelabs/archive-envoy/actions/runs/1524088760

expected darwin to fail as there's no homebrew yet for it, but windows failed due a yaml miss. I added that here https://github.com/tetratelabs/archive-envoy/commit/ffc2e333b4f619c059f90a46fca0c5720bce8e36
looking again https://github.com/tetratelabs/archive-envoy/actions/runs/1524103170

one last glitch.. one of the darwin jobs failed (actually hung) due to the version <11 being expressed as a minor version (10.15 not 10) Fixed that, too https://github.com/tetratelabs/archive-envoy/commit/2ea249baf649d74933cc654e90c4b46ba67a982b
🤞 https://github.com/tetratelabs/archive-envoy/actions/runs/1524121086

ok looks right!


Can't build due to cardano-ledger-specs

fatal: reference is not a tree: ef6bb99782d61316da55470620c7da994cc352b2

This is a dangling commit: https://github.com/input-output-hk/cardano-ledger-specs/commit/ef6bb99782d61316da55470620c7da994cc352b2

Ah, I missed that it's a fork while converting the cabal.project file: https://github.com/raduom/cardano-ledger-specs


text extraction using ocr

If i give a cropped image with a handwritten text in a line ,it is difficult to recognize and i'm getting wrong predicted output.
instead if i give the same without the  text touching the line ,then i could extract the text without any mistake.
input:

output:

so,let me know how could it be resolved!

Can you provide your code?

i haven't changed anything ,i just gitclone the model easter 2.0 and did a little alteration in testing.txt ,but i gave the different test image in the same format .actually the model is working without lines .
but the thing is ,help me out to extract the correct txt even if it is given in line .

I need to understand the changes though

i have only altered the testing images similar to the iam dataset

Thanks @swetharethinavel for trying out Easter2.
I understand your concern. This pre-trained model is only trained to IAM dataset, so it has seen only clean images (no underlines).
In order to make it work for underlined images - you may have to train it further with some underlined training samples. In this way, model should start working on underlined text as well.

@kartikgill can we use this easter model to extract the numbers from an document?

@swetharethinavel kindly understand that deep learning models are generally very sensitive to the data distribution. I believe that the IAM dataset is not explicitly trained to recognize numbers. If you however want to use this model for extraction you will have to finetune your data.
You can however use google's cloud vision API for off-the shelf usage - which seem to do pretty well.

Hey @swetharethinavel ,
I understand your concern. But, as @khadiravana-belagavi rightly mentioned that deep learning model only learns what it sees in training data..so in case you want it to work on numbers or maybe another language...kindly provide some relevant data samples and finetune it. I hope it clears your doubt. Thanks.
Just to give you confidence - During my project, i have tried Easter for different things like - numbers, symbols etc. And, it did great as long as you have proper training samples.
I hope this clears your doubt...closing the issue for now. Please feel free to reopen if need be. Thanks.


Where does the triangulation method come from in Chapter 13?

It seems a new method in the function 'triangulation' of file 'slambook2/ch13/include/myslam/algorithm.h.' I cannot imagine it is the same triangulation method that we have discussed in function 7.25 of Section 7.

Dear @BlueBirdHouse,
Please refer to the following resource:  https://www.cs.cmu.edu/~16385/s17/Slides/11.4_Triangulation.pdf
It is using the SVD to triangulate the distance.


Added destroy method. closes #55

It needs the pazguille/decouple branch to be merged first https://github.com/pazguille/decouple/pull/3

Please, update decouple dependency version to 0.0.2.
Thanks!

Done


Please add the schema $id to Error class when we have InvalidSchemaException

I have a main schema file with refrences to external schema (where I define common types)
 { "$id": "/main-schema.json"
  "properties": {"myProperty": {"$ref": "types.json#/$defs/myType"}}
  }

external schema for common types "types.json":
{  "$id": "/types.json"
   "$defs": {"myType": {"type": []}}    <-- wrong 'type' here, should be 1+ type definition
}

When I have an error in any of the schema files, I have a little information about the origin of the error. There is Error.getInstanceLocation() which returns something like /$defs/myType. It is OK when the whole schema is located in one single file. But in my case I have 2 files, so will be good to have an extra information about file with incorrect definition.   I understand that it is hard  or impossible to provide filename, so the $Id of the schema with error is good alternative.

Hmm, actually the affected schema URI is contained in exception message, e.g. Schema [a/b/subschema.json] failed to validate against meta-schema [https://json-schema.org/draft/2020-12/schema]. I could add schema URI as a field in InvalidSchemaException - would that solve your use case?

Thank for pointing this out.  It definetly solves my case.
(In my I catched the exeption and print only content of the ex.getErrors())


NEW Teaching & Learning Resource Center Form

See here for Google Doc: https://docs.google.com/document/d/1zJaeQG-EuWQXL8RjIT0XjfOZvCCSfPS217BwIEVP2AM/edit?ts=5b1874be#
See here for fields editor spreadsheet: https://docs.google.com/spreadsheets/d/1xtRDs1rg8sglPIdmMnIgwyvl25g1Y-cyvv7ueryVhoo/edit#gid=678179084

[ ] Build data forms

[ ] Make some kind of warning system that tells users they can't publish the entry without uploading a file OR including a link (no narrative = need some way to access the resource

@jesicarson Just realized we're missing a 'Content Type' option for audio content (podcasts, radio stations, etc.). Would it be better (UIX-wise) to combine it with Video (eg. 'Audio/Video') or have a separate option for each (ie. 'Audio' and 'Video'

@scottofletcher i get it now. lol. whatever you like, just list it in the final spreadsheet. maybe separate them since we might eventually add audio to the media section of forms. But really its whatever you want.

@plscully do you have a preference about this before I finalize the spreadsheet? I think we could get away with 'Audio/Video' but, then again, I guess they could be quite different types of teaching resources. I'm thinking of when I took French - lessons that used audio involved more participation than videos (ie. audio lessons usually involved 'listen and repeat' or 'listen and answer these questions' vs videos which usually just involved watching a skit and then filling out a questionnaire or worksheet)

@scottofletcher Let's have separate values for video and audio, especially since podcasts have become ubiquitous

Sounds good! I'll update that right now


fix: [docs] catch call path

I believe the intended path in "catch all" was /api/users/[...all].

That's right, thanks!


Simplify awk

fix the comments about variables output, the format is with --xx yy . Also avoid for loop in favor of known variable to be printed ; here its $2 so simple  print $2 would suffice.

@lloesche can you review please?

a comparison:
export MARATHON_IMR=imr
export MARATHON_MANI=mani
 export MARATHON_HAYDER=hayder

Old:
 for env_op in `env | grep -v ^MARATHON_APP | grep ^MARATHON_ | awk '{gsub(/MARATHON_/,""); gsub(/=/," "); printf("%s%s ", "--", tolower($1)); for(i=2;i<=NF;i++){printf("%s ", $i)}}'`; do echo $env_op; done

--hayder
hayder
--mani
mani
--imr
imr

New:
for env_op in `env | grep -v ^MARATHON_APP | grep ^MARATHON_ | awk '{gsub(/MARATHON_/,""); gsub(/=/," "); printf("%s%s ", "--", tolower($1)); print $2}'`; do echo $env_op; done

--hayder
hayder
--mani
mani
--imr
imr

Hi, thanks for the PR!
I don't think the rest of the code allows args with spaces anyways, but just to maintain the current behaviour I'd $1=""; print $0 instead of printing $2.
Otherwise the new awk code breaks for things like
export MARATHON_foo="some arg with spaces"

which the old awk code handles correctly.

Hey @hayderimran7 any updates here?

@aquamatthias  thanks . i have updated PR with proposed change and it takes care of args with spaces.

closing it now since the changes proposed earlier were breaking case for whitespace.


Update be-pilot.md

https://github.com/MicrosoftDocs/OfficeDocs-WorkplaceAnalytics/issues/259
Fixed link

@madehmer PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

this has been corrected without this PR being merged. closing.


[wip] Audio 3D position/panning changes (add panning, both panning and position off by default)

There are a few issues with sound position that this PR aims to improve.

3D position is used to simulate panning on non-Flash targets. This is ok for native, where we use OpenAL and there's no alternative for panning. On HTML5, however, howler has a stereo mode for playing sounds. That gives a better result than using the awkwardly simulated panning based on 3D audio.

Using 3D audio at all on HTML5 can lead to serious degradation of audio quality ("muffled" sounds).
Stencyl Issue Tracker: Muffled Sounds On HTML5

Using 3D audio positioning at all can lead to extra audio processing code being run, even if the position is (0, 0, 0), so it should be avoided if not desired.

This makes position a nullable value, null by default, which is a change to the AudioSource API.

As mentioned here, these changes have vastly improved the sound quality for me. Paired with my recent PR, sound in HTML5 is now comparable to native.


Array creation

AWK should have a variadic function for array creation. Currently if you wish to
create an array, you must use this:
dd[1] = "aa"
dd[2] = "bb"
dd[3] = "cc"

Or:
split("aa bb cc", dd)

the split syntax is problematic if your elements contain spaces. That can be
worked around by using a custom separator:
split("aa bb\1cc", dd, "\1")

but then it will fail again if your separator happens to be part of one of the
elements. Many other languages have syntax for array literals, for example C:
char *dd[] = {"aa", "bb", "cc"};

Python:
dd = ['aa', 'bb', 'cc']

JavaScript:
var dd = ['aa', 'bb', 'cc'];

Ruby:
dd = ['aa', 'bb', 'cc']

Go:
dd := []string {"aa", "bb", "cc"}

with AWK, it could look like one of these:
anew(dd, "aa", "bb", "cc")
dd[2] == "bb"

aset(dd, "aa", "bb", "cc")
dd[2] == "bb"

Hi Steven, I'd rather not add GoAWK-specific language extensions -- I'm not really interested in evolving the language beyond POSIX AWK. Sorry about that!

@benhoyt I see youve said that now a couple of times:

https://github.com/benhoyt/goawk/issues/28#issuecomment-495928969
https://github.com/benhoyt/goawk/pull/15#issuecomment-441640328

but is that actually true?:

https://github.com/benhoyt/goawk/issues/24
https://github.com/benhoyt/goawk#basic-usage

it seems you are willing to add extensions that you like. Perhaps you could
modify your canned statement going forward?

Heh, you may be right - BDFL's privilege. :-) However, you'll note on the hex escape thing that "one true awk" works that way, so there's a precedent and no real reason to change it. I'm open to pulling non-POSIX things in if they're in awk or gawk, but I'll take them on a case-by-case basis.
Under "differences from AWK", the only language feature difference is the single quote thing -- I don't really consider this a new feature, just a helpful tokenization thing for Windows command lines (I used Windows for a long time so have a fair bit of empathy for Windows users).
What I might consider is extending the Go function call support to allow setting array values, and then someone could add their own aset() function. Though that might be tricky to get right...


Fetch random photo(s)

Hi! Is there any (efficient) way of fetching X number of randomly chosen photos using this API?

No. You currently fetch a range of photos by index. It could be implemented though. (Of course you can fetch all photos (or top 5000 say) and pick randomly, not to expensive today).


OpenSFF Best Practices Badge Program for Pipeline

Achieve the OpenSFF Best Practices Badge.
Add the badge to the main project README.

Related issues:

[ ] https://github.com/tektoncd/website/issues/448


Optimize cluster sweep fee rates

The sweeper clusters input with similar fee rates together to save on fees. However, in such a cluster all inputs won't necessarily have the exact same fee preference, and hence we must choose a "compromise fee rate" to use when sweeping them together.
Currently we take just the average among the inputs in the cluster: https://github.com/lightningnetwork/lnd/blob/8ec4697fe3eff2a15b93cac4c266981b51423744/sweep/sweeper.go#L816
As pointed out by @cfromknecht (see https://github.com/lightningnetwork/lnd/pull/4779#discussion_r530584868) this is probably not optimal, for several reasons:

a high pref input might get a lower fee rate than we want, in case it gets clustered together with lower pri inputs.
it is not weight aware, meaning that the fee rate for heavy inputs will impact the final fee rate no more than less heavy inputs
the input might be lingering for a while, so the fee estimates might not be up-to-date. Could make sense to update them/or take most recent fee estimate.

One other thing I noticed in this area that should be fixed, is that the inputs grouped by locktime currently don't follow the exclusive group constraints.
This is not a problem atm since only anchor output sweeps use the exclusive group constreaints and they don't have a locktime, but it should be fixed.


Adding an Helm repo from additionalConfigMaps

Hi,
I'm using additionalConfigMaps to add my MavenGroup repos. Now i have the need to add a helm repo as well.
I couldn't find the syntax to do that anywhere. Can you please assist?
Thanks!

Yeah! the documentation of this value (additionalConfigMaps) is very weak or basically, it's absent , except that comment about an example of MavenProxy


mainChara Error

Error message
Paste the error message in the area below:
Traceback (most recent call last):
  File "maidfiddler\ui\maids_list.py", line 131, in maid_selected
  File "maidfiddler\ui\tabs\maid_info.py", line 205, in on_maid_selected
KeyError: 'mainChara'

Version information:

Game version [1.38]
Maid Fiddler version [1.06]

Old issue, closing. Maid Fiddler has since been updated and the game as well.
Please create a new issue if the problem still persists.


What type of update are you requesting?
A new version of an existing package
Current Package Identifier
GnuWin32.Grep
Package Version
2.5.4
Please describe the changes you would like to see
It installs, but then cant be found.

Can't identify your issue. 😞
PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> winget install --id GnuWin32.Grep --accept-source-agreements --accept-package-agreements
The `msstore` source requires that you view the following agreements before using.
Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction
The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US").

Found GnuWin32: Grep [GnuWin32.Grep] Version 2.5.4
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://sourceforge.net/projects/gnuwin32/files/grep/2.5.4/grep-2.5.4-setup.exe/download
  ██████████████████████████████  1.81 MB / 1.81 MB
Successfully verified installer hash
Starting package install...
Successfully installed

PS C:\Users\WDAGUtilityAccount\Desktop\winget-pkgs> Get-ARPTable | Format-Table

DisplayName           DisplayVersion Publisher             ProductCode           Scope
-----------           -------------- ---------             -----------           -----
GnuWin32: Grep-2.5.4  2.5.4          GnuWin32              Grep-2.5.4_is1        Machine
Microsoft Edge        100.0.1185.36  Microsoft Corporation Microsoft Edge        Machine
Microsoft Edge Update <IP_ADDRESS>                           Microsoft Edge Update Machine

This version appears to have already been added.


coding browser anomaly

When I search for TRAPPC10 by entering it in the 'show all results for a gene' box, it returns
"PARSING ERROR"
and nothing else...
The gene looks perfectly normal in https://results.finngen.fi/gene/TRAPPC10 and does have missense variants...

actually it seems the whole feature is broken - but seemingly in the last half day since I was using it without issue yesterday

It seems there are NaNs in the data extracted from the db and they are not parsed correctly - we get "not valid JSON" error, will fix that.

Thanks Anastasia!!


64bit tensors with natural mod reductions

For some applications 64bit might be enough, in which case we can not only avoid the use of the CRT also potentially switch to "native modulo reductions" in the form of natural wrap-arounds as opposed to explicit % operations. This combined setting is for instance used in SecureML.

More discussion in #100


fix: XML Malformed Error DeleteObjectsCommand

https://discord.com/channels/983865673656705025/1167435351577604203

LGTM, looks like the commit history has stuff from your old branch, not sure if that'll cause any weird history.

I saw this too, but I had done a full merge.  I think it is a GitHub display issue between forks, but these are in fact already merged, so it should be fine.


Add README.md to mbed/lock-app example

Initial draft of mbed/lock-app example documentation

@lukgni Very nice and simple description:) LGTM. But what about debugging? Will we mention something about this option?

@lukgni Very nice and simple description:) LGTM. But what about debugging? Will we mention something about this option?

I added short information about debugging.


Using two Bullet point lists do not render correctly

If you have content as displayed in the convertToRaw of the editorState.
7: {key: "5qoqm", text: "NumberedList   ", type: "ordered-list-item", depth: 0, inlineStyleRanges: Array(0), …}
8: {key: "dn5n", text: "sub", type: "ordered-list-item", depth: 1, inlineStyleRanges: Array(0), …}
9: {key: "53r0c", text: "sub 2", type: "ordered-list-item", depth: 2, inlineStyleRanges: Array(0), …}
10: {key: "8kagr", text: "BulletList", type: "unordered-list-item", depth: 0, inlineStyleRanges: Array(0), …}
11: {key: "2u2p6", text: "sub", type: "unordered-list-item", depth: 1, inlineStyleRanges: Array(0), …}
12: {key: "cffgo", text: "sub 2", type: "unordered-list-item", depth: 2, inlineStyleRanges: Array(0), …}

Which looks like
1. NumberedList
   1. sub
      1. sub 2
* BulletList
   * sub
       * sub 2

The html produced is

NumberedList

BulletList

sub

sub

sub 2

sub 2

Which looks like
1. NumberedList
* BulletList
   1. sub
   * sub
      1. sub 2
       * sub 2

Adding a new line between the end of the numbered lists and the bullet points, makes it all render correctly

Facing the exact same issue. @mitchellwarr did you manage to work around it?

i cant remember. but this edge case is such that im ignoring the issue until my codebase can phase this WYSIWYG out with a better one

Same issue here. Lists are directly nested under the parent list, when it should be wrapped with a
. https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/HTML_text_fundamentals#nesting_lists
Any updates on this issue or how to work around it?

I've just created a PR (#107) to fix this issue. Now we need a help from @jpuri to merge it.


💡 [FEAT] Pass a todo.yml file as an argument

Is your feature request related to a problem? 😢 Please describe.
I have multiple projects that I want to keep the todos isolated from each other. Right now it seems that dooit allows for only one file location (yes that is a setting), but it would be nice to specify a yml file to open
Describe the solution you'd like   🤔
allow for dooit ./todo.yml so a local or different yml file can be opened and edited

Hi @ryanramage , just a friendly ping to inform you that I think this is a great idea and hopefully will add this in the next release.
If you liked dooit, please check out the latest version just released earlier today and lemme know your thoughts on it :)


RUMM-2345: Read config properties from datadog-ci.json

What does this PR do?
This change supports parsing some properties from datadog-ci.json, namely datadogSite and apiKey properties.
This file may be located in the root of the project (but since the definition of the root may vary between the different setups, we try to find datadog-ci.json file by doing upward traversal).
The order of API key lookup is like the following:

Gradle property
datadog-ci.json file
Environment property

The order of site lookup is like the following:

Gradle extension configuration
datadog-ci.json file

datadog-ci.json file is included as an input of upload task so that it can be watched by the Gradle for the changes, otherwise it won't be checked and any changes there won't be reflected when running upload task, which may be confusing for the user.
Review checklist (to be filled by reviewers)

[x] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[x] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[x] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #104 (40c5825) into nogorodnikov/rumm-2163/disable-dependencies-check-task-by-default (33f9db2) will increase coverage by 1.14%.
The diff coverage is 90.91%.

@@                                           Coverage Diff                                           @@
##             nogorodnikov/rumm-2163/disable-dependencies-check-task-by-default     #104      +/-   ##
=======================================================================================================
+ Coverage                                                                87.31%   88.45%   +1.14%
- Complexity                                                                 145      163      +18
=======================================================================================================
  Files                                                                       20       21       +1
  Lines                                                                      465      511      +46
  Branches                                                                    53       61       +8
=======================================================================================================
+ Hits                                                                       406      452      +46
+ Misses                                                                      40       38       -2
- Partials                                                                    19       21       +2

Impacted Files
Coverage Δ

...com/datadog/gradle/plugin/DdAndroidGradlePlugin.kt
74.34% <82.35%> (+2.06%)
:arrow_up:

...m/datadog/gradle/plugin/DdMappingFileUploadTask.kt
93.55% <90.00%> (-0.14%)
:arrow_down:

...in/kotlin/com/datadog/gradle/plugin/DatadogSite.kt
100.00% <100.00%> (+20.00%)
:arrow_up:

.../datadog/gradle/plugin/DdExtensionConfiguration.kt
100.00% <100.00%> (ø)

...otlin/com/datadog/gradle/plugin/internal/ApiKey.kt
100.00% <100.00%> (ø)


Use low memory map for in-memory index - about 45% less memory for index

What is the purpose of this change? What does it change?
Use a low memory map for the in-memory index.
In fact there are a few changes which come with this PR:

Use a separate map for treeBlobs and dataBlobs as this saves 1 byte per index entry.
Use a complete replacement for go's map which uses much more memory and doesn't show worst-case behavior. The tradeoff is that this map is slower, needs an extra sorting step and there are performance spikes when inserting (growing is done all at once). IMO these drawbacks are acceptable within restic
Remove the extra handling of duplicate blobs as this "feature" is integrated within the map.

For more details about the low-memory map, see internal/repository/index_inmem.go.
Here is the comparison to master (where #2781 is already merged!) of the repository benchmarks:
name                                     old time/op    new time/op    delta
PackerManager-4                             288ms ± 5%     262ms ± 0%    -8.94%  (p=0.000 n=10+8)
DecodeIndex-4                              18.4µs ± 4%    23.6µs ± 2%   +28.55%  (p=0.000 n=10+10)
IndexHasUnknown-4                          61.7ns ± 8%   247.0ns ± 2%  +300.19%  (p=0.000 n=10+8)
IndexHasKnown-4                            63.3ns ± 2%   279.8ns ± 2%  +341.68%  (p=0.000 n=9+9)
IndexAlloc-4                                1.08s ± 3%     1.23s ± 2%   +14.51%  (p=0.000 n=10+10)
MasterIndexLookupSingleIndex-4              173ns ± 5%     430ns ± 1%  +148.97%  (p=0.000 n=10+9)
MasterIndexLookupMultipleIndex-4            515ns ± 8%    1855ns ± 6%  +260.19%  (p=0.000 n=9+10)
MasterIndexLookupSingleIndexUnknown-4      90.9ns ± 6%   268.4ns ± 5%  +195.24%  (p=0.000 n=10+10)
MasterIndexLookupMultipleIndexUnknown-4     435ns ± 5%    1643ns ± 5%  +277.42%  (p=0.002 n=4+10)
LoadTree-4                                  459µs ± 1%     460µs ± 2%      ~     (p=0.481 n=10+10)
LoadBlob-4                                 8.19ms ± 1%    8.18ms ± 0%      ~     (p=0.549 n=10+9)
LoadAndDecrypt-4                           10.2ms ± 4%    10.1ms ± 3%      ~     (p=0.190 n=10+10)
LoadIndex-4                                41.6ms ± 2%    42.8ms ± 3%    +2.94%  (p=0.000 n=10+10)
SaveAndEncrypt-4                            127ns ± 1%     204ns ± 2%   +60.66%  (p=0.000 n=9+10)

name                                     old speed      new speed      delta
PackerManager-4                           183MB/s ± 5%   201MB/s ± 0%    +9.74%  (p=0.000 n=10+8)
LoadBlob-4                                122MB/s ± 1%   122MB/s ± 0%      ~     (p=0.534 n=10+9)
LoadAndDecrypt-4                         97.9MB/s ± 4%  99.3MB/s ± 3%      ~     (p=0.190 n=10+10)
SaveAndEncrypt-4                         33.0TB/s ± 1%  20.6TB/s ± 1%   -37.54%  (p=0.000 n=10+9)

name                                     old alloc/op   new alloc/op   delta
PackerManager-4                            91.0kB ± 0%    91.0kB ± 0%      ~     (p=1.117 n=9+10)
IndexAlloc-4                                786MB ± 0%     430MB ± 0%   -45.28%  (p=0.000 n=10+10)
SaveAndEncrypt-4                            2.00B ± 0%     3.00B ± 0%   +50.00%  (p=0.000 n=10+10)

name                                     old allocs/op  new allocs/op  delta
PackerManager-4                             1.41k ± 0%     1.41k ± 0%      ~     (p=0.917 n=9+10)
IndexAlloc-4                                 977k ± 0%      995k ± 0%    +1.90%  (p=0.000 n=10+10)
SaveAndEncrypt-4                             0.00           0.00           ~     (all equal)

As expected, some timings are getting worse, but these are internal timings and I didn't see impacts restic commands (but didn't measure these, either). Note the -45.28% on memory usage.
Also note, that with this PR huge index speed improvements are possible when merging the indexes, see #2799 .
Was the change discussed in an issue or in the forum before?
The ideas come from #2523 and #2799.
Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[ ] I have added tests for all changes in this PR
[ ] I have added documentation for the changes (in the manual)
[ ] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[ ] I'm done, this Pull Request is ready for review

Interesting.
For comparison, I've been trying custom hash tables as well, but started with a simple chaning one with the duplicates in separate links. That also seemed to solve the memory use issue, but may come with some subtle performance issues: sequential performance was down between 8% and 31% on the benchmarks, and I could see a second core running the GC at 100%, so concurrent performance might be terrible.

I put up my chaining version as an alternative in #2812 because its allocation rate is comparable, but it's lookup speed is a lot better than this version. It also admits merging more easily, I think, if we still want to try that some day.

I put up my chaining version as an alternative in #2812 because its allocation rate is comparable, but it's lookup speed is a lot better than this version. It also admits merging more easily, I think, if we still want to try that some day.

Your linked list looks quite promising (and IMO memory consumption could be much further decreased by not using a separate "duplicates") I'm however a bit irritated: my approach should lead to at most around 5 bytes overhead per index entry, while your approach (with separate duplicates) should yield 32 extra bytes.
So I think the "new allocs" do not indicate memory usage, but just new allocates.
Or I did miss some issues within my implementation...

allocs/op is the number of calls to the memory allocator. alloc/op is the total amount of memory requested, not the peak memory usage. I'm currently trying to benchmark both PRs against master on some realistic tasks, and I'm getting conflicting results: sometimes mine wins, sometimes yours. Throughput isn't much different. Do you know what restic command is most likely to allocate indexes and not much else?
You're right about the duplicates handling, that's the part I couldn't quite get right.

Also, I don't really get your 5 vs. 32 bytes comment, care to elaborate?

Do you know what restic command is most likely to allocate indexes and not much else?

I would say restic cat blob is your candidate :wink:

You're right about the duplicates handling, that's the part I couldn't quite get right.

IMO you should just include them into your chained list (aka linked list) and implement a get and getAll method like I did in this PR. This will save you 24 bytes per index entry.

Also, I don't really get your 5 vs. 32 bytes comment, care to elaborate?

The entry size for this PR is 32 bytes  + 16 bytes = 48 bytes. (49 bytes for your approach as you also save the BlobType)
For this PR: on average 1/2 byte of overhead per index entry + 1/2 unused page per 48 total pages. 1/2 page is 1648 bytes and 48 pages will have around 3248 entries. This is another 2 bytes overhead.
So I actually expect 2,5 bytes overhead per entry but worst case will be about double that amount.
For your approach I just took into account the extra pointer (8 bytes) and the duplicates slice (24 bytes). This is already 32 bytes per entry. On addition there is the overhead of managing the buckets which is 8 bytes per bucket and on average 2/3 buckets per entry. So total overhead should be 37 bytes on average. If you remove the duplicates slice, it will still be 13 bytes per entry on average and a bit more in the worst case.

I think you're missing some bytes of malloc overhead. The Go malloc, IIIRC, allocates in 64-byte multiples, so your buckets are bigger than you think. My use of a free list takes care of some of that.
Anyway, I found a way to store the duplicates in a separate list and get the indexEntry down to 64 bytes. Debugging as we speak :)

I think you're missing some bytes of malloc overhead. The Go malloc, IIIRC, allocates in 64-byte multiples, so your buckets are bigger than you think. My use of a free list takes care of some of that.

I think it is either 8 bytes or 16 byte multiples up to 288 bytes or 32 byte multiples up to 512 bytes.

Judging from the malloc code, you're right about the tiny sizes. Good to know.

After also adding a linked list variant (approach of @greatroar) , IMO that approach should be used. I change this to draft for reference and will close it as soon as #2812 is merged.

closed as #2812 is merged.


DeviceResponse Validator

Helpers:

[x] X5CValidator
[x] DocumentValidator
[x] DeviceResponseValidator

Application:

[x] Be able to configure trust anchors for issuers.
[x] Expose a stateless endpoint for validation device response (not presentation submission)
Closes #199

@babisRoutis Added a REST endpoint for validating MSO MDoc DeviceResponses. Please let me know of any comments.

@dzarras Reduced the scope of the PR and the related issue, in order to merge it sooner.
Was thinking that if the validation outcome is valid we could return a list of documents where each "document" is a view of the mdoc. For instance:

docType
a list of displayable attributes per namespace.

Displayable attributes: String, Numbers etc
That's a nice to have though.

@babisRoutis Ready for final review.

@dzarras Reduced the scope of the PR and the related issue, in order to merge it sooner.
Was thinking that if the validation outcome is valid we could return a list of documents where each "document" is a view of the mdoc. For instance:

docType
a list of displayable attributes per namespace.

Displayable attributes: String, Numbers etc
That's a nice to have though.

@babisRoutis In case of validation success a simplified view of the successfully validated MDoc documents is now returned. e.g.:
[
  {
    "docType": "eu.europa.ec.eudi.pid.1",
    "attributes": {
      "eu.europa.ec.eudi.pid.1": [
        "age_over_18"
      ]
    }
  }
]


shaderObject: Disable formatting generated code

CI Vulkan-ExtensionLayer build queued with queue ID 7051.

CI Vulkan-ExtensionLayer build # 511 running.

CI Vulkan-ExtensionLayer build # 511 passed.