Accessible Sibling layering and interaction with iOS VoiceOver

From https://github.com/phetsims/gravity-force-lab/issues/210.
Rendering order of accessible siblings is not equal to rendering order of Nodes in the scene graph. And so when VoiceOver is enabled you may only select the bottom Node in the area where two Node's overlap.
We should investigate the ability to match PDOM z-order with scenery z-order to fix this.

Here is GFL on load:

Here is GFL with the ruler positioned on top of the mass "slider"

I would have thought that current behavior was because the HTML slider was on top of the ruler. But in DOM it is being rendered behind the ruler button. So now I am wondering if there is anything we can do about this. Maybe VoiceOVer just prioritizes sliders or something like that. I am going to try to modify z-indices in this example and see if it has any impact on behavior.

In this example, VoiceOver respects the z-indices.
<!DOCTYPE html>
<html>
<head>
<style>
.elem {
  position: fixed;
}
.button {
  width: 500px;
  height: 500px;
  z-index: 2;
}
.slider {
  width: 500px;
  height: 500px;
  z-index: 1;
}
</style>
</head>
<body>
<input class="elem slider" type="range">
<button class="elem button">My Button</button>
</body>
</html>

When the button is on top, I can only select the button. When the slider is on top, I can only select the slider.

z-index currently has very little impact on our sims because all siblings have are positioned with fixed and thus create their own stacking context.
In order to explore this in the sim we need to 1) only apply position: fixed on elements that get transformed, and 2) set the z-index on elements correctly to match layering.

Discussed with @terracoda and @zepumph -
@zepumph suggested putting pointer-events: none on the root element to see if that has an impact.  This will be a quick check.
Otherwise, we agreed that this does not need to be fixed for publication of GFL. It will become a larger issue when we work on a sim where you can drag a small interactive component onto a larger interactive component because then the smaller object can become untouchable (though it can still be found with swipe gestures). As such, this is low priority.

I tried the following, moving pointer-events: none; to the root.

diff --git a/js/accessibility/AccessibleSiblingStyle.js b/js/accessibility/AccessibleSiblingStyle.js
index 433ba4b8..cab5d039 100644
--- a/js/accessibility/AccessibleSiblingStyle.js
+++ b/js/accessibility/AccessibleSiblingStyle.js
@@ -33,7 +33,7 @@ define( require => {
       'position: fixed;' +

       // ABSOLUTELY CRITICAL - so PDOM elements do not interfere with rest of scenery input
-      'pointer-events: none;' +
+      // 'pointer-events: none;' +

       // default, to the 'relative' root PDOM element - will change with node transform if focusable
       'top: 0px;' +
@@ -61,7 +61,7 @@ define( require => {
       // adding this clip area seems to prevent Safari from doing expensive DOM layout calculations every change.
       // Surprisingly, there is no performance benefit if this is put on the root element.
       // see https://github.com/phetsims/scenery/issues/663
-      'clip: rect(1px, 1px, 1px, 1px);' +
+      // 'clip: rect(1px, 1px, 1px, 1px);' +
     '}'
   );

@@ -70,6 +70,8 @@ define( require => {
       // so that this root can also be positioned
       'position: absolute;' +

+      'pointer-events: none;' +
+
       // 'fixed' positioned elements interfere with workarounds that are meant to prevent Safari from going to sleep
       // when the browser is left inactive for a few minutes. This z-index keeps the PDOM from interfering, while still
       // allowing us to use `fixed`. If the PDOM elements are ever styled with position: 'absolute' (would require
@@ -78,7 +80,7 @@ define( require => {
       'z-index: 1;' +

       // JUST FOR DEBUGGING! So you can see the PDOM on top of other graphical content
-      // 'z-index: 5000;' +
+      'z-index: 5000;' +

       // a catch all for things that are not hidden by the styling on descendants of the root (for example
       // there is no other way to hide or style check boxes with CSS)

Things still seem to work as they are in master, but the problem with this issue still persists. We are not going to address this now.
When we pick this up, we will want to:

[ ] Find an alternative way to prevent pointer events on the PDOM. Likely catch events on the root with useCapture and preventDefault/prevent dispatch.
[ ] Find an alternative to the clip: rect(1px, 1px, 1px, 1px); optimization that makes things faster in Safari for some reason.
[ ] Make sure the PDOM is on top of all other layers in the rendering order.
[ ] PDOM z-layering should match graphical layering. This may not be the case if using accessibleOrder.


Tiered cache and suitability of Souin for processed asset requests caching

Is tiered caching something that Souin might support? Where a fast memory cache is used, and a larger on disk cache?
One project I was looking into imageproxy mentions a way of supporting this via the Go package twotier.
A similar named project imgproxy is what I'd like to use, but they have no integrated support for a cache layer. I use Caddy as a reverse-proxy and saw you mention Souin on cdp-cache caddy plugin project.
Is Souin suitable for this type of processed image caching to avoid redundantly processing the same image requests too frequently? Or is squid/varnish/nuster more appropriate?

We have around 30GB of image data, but want to serve a variety of transforms (size and image formats), the website has image heavy pages (most notably the main page which is updated frequently), we exceed 10TB in monthly bandwidth traffic, thus I'm a little concerned about the resource trade-off of CPU+RAM for storage with no cache or memory cache being too small.
A disk cache will also survive service restarts without requiring resources to reprocess frequently accessed images, assuming that cache retention can be LRU or LFU based instead of evicted by an expiry time/age. Once transformed, these images can be assigned immutable and long-lived cache-control header for the client-side.

Hello @polarathene, thank for your interest about Souin.
I think, you could use Souin with the EmbeddedOlric or Olric provider. This way, it will store in memory and save on disk when it reaches the RAM limit. This way it will support the LRU based storage.
If you request your images using urls, Souin will be able to cache the image depending the query params.
It would be related to this issue I guess https://github.com/Darkweak/Souin/issues/62#issue-858535496 (cc @lucmichalski).
ATM it's not supported officially by Caddy as cache system, but in a near future it should be done.

It would be related to this issue I guess #62 (comment) (cc @lucmichalski).

Similar. My plan is to proxy existing asset URLs for some old software we run that we can use the URL to lookup the original image on disk and transform it via an image proxy service running on the server internally, that then provides the optimized image as a response back to Caddy, which then from what I understand goes through Souin to be cached for future requests to that URL.
If we had all transforms up front on disk for a static file server or CDN it would be between 100-500GiB, or alternatively with the image proxy, we process the image URL every request redundantly. Souin or similar seems an appropriate fit to cache the most actively requested image URLs, we're likely to still adopt an external CDN service as we only have a single server.

ATM it's not supported officially by Caddy as cache system, but in a near future it should be done.

What is not supported by Caddy? My understanding is that Souin is usable as a Caddy plugin? I plan to try it in the next day or so.

Souin will be able to cache the image depending the query params.

Is there more information about that constraint? I didn't see anything on the README regarding query params affecting caching. As long as the URL with params remains the same for a resource, it will not have any issues correct?
The cache layer is intended for the imgproxy processed results, a request to imgproxy service (internal, not publicly reachable) will be handled by Caddy, with no involvement from Souin. Requests from the website asset URLs would be picked up by Souin, providing query params to imgproxy to process if no cache hit.

What is not supported by Caddy? My understanding is that Souin is usable as a Caddy plugin? I plan to try it in the next day or so.
I said it's not officially supported by Caddy because that's not in the official documentation. But be sure everything is working like a charm.

The part about the query params would say:
You send a request on your imgproxy service with a height and a width parameters to resize my_first_image (GET https://imgproxy.com/my_first_image?height=400&width=200) then Souin will store the resized image and serve from cache my_first_image resized.
If a user send a GET request on https://imgproxy.com/my_first_image?height=800&width=400 for example, then Souin will send the request to the service to build the resized image.

Wait tomorrow to try Souin, I'm currently working on the refactoring about the request coalescing implementation. I should finish this tonight.

Update: The new management system for the request coalescing is available on master @polarathene

@polarathene if you can wait for another KV (instead of Olric) storage with a file cache in case you're over the declared memory limit, I'll implement the fact you can fully configure Badger in few days.
ATM I'm on another issue/feature but it shouldn't take more than a day so after that I should be able to dev this part.


docs($aria): get the docs working for the service

AngularJS is in LTS mode
We are no longer accepting changes that are not critical bug fixes into this project.
See https://blog.angular.io/stable-angularjs-and-long-term-support-7e077635ee9c for more detail.

Does this PR fix a regression since 1.7.0, a security flaw, or a problem caused by a new browser version?
Yes

What is the current behavior? (You can also link to an open issue here)
Docs don't work for $aria.
What is the new behavior (if this is a feature change)?
Docs work for $aria.
Does this PR introduce a breaking change?
No.
Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[x] Fix/Feature: Docs have been added/updated
[x] Fix/Feature: Tests have been added; existing tests pass

Other information:
Apparently @priority broke this, and that doc annotation is only meant for directives, not services.
Here is an example of the working docs:

Looks like the travis build failed due to an internal error, and not something due to this PR.

Good catch! Thx for, @chivesrs :+1:


Add hook for cleanup/teardown of injected objects

https://tsed.io/docs/hooks.html
Reading the hooks documentation above, it does not look like there are any hooks for tear down methods within the injected components. Perhaps something like this is handled automatically already, but for example in unit testing with the PlatformTest each spin up and spin down exposes the possibility of unmanaged and unclosed connections within the components.
Adding a lifecycle hook would allow for clean teardown such as:
@Service()
export class DbService implements OnDestroy {

  constructor() {}

  public dbpool: Pool = createPool(MySqlConfig);

  public async GetConnection() {
    // stuff
  }

  $onDestroy() {
    this.dbpool.end();
  }

}

Hello @reed-lawrence
The hook exists but isn’t correctly documented ;)


Add deployment APIs at tenant scope

Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-go

Can one of the admins verify this patch?

@openapibot sdkautomation rebuild

@openapibot sdkautomation rebuild

@openapibot sdkautomation rebuild

@openapibot sdkautomation rebuild

@Tiano2017 there're errors in CI. pls fix them.

modelvalidation error: https://dev.azure.com/azure-sdk/public/_build/results?buildId=74633&view=logs&j=8d2f9c49-cd83-5a9d-f3fe-2fd651afa742. Error is MISSING_REQUIRED_PARAMETER

@yungezz Looking at my example file: https://github.com/Azure/azure-rest-api-specs/pull/6720/files#diff-30a00039c98a25059cce3712940c7032, I see both parameters are provided. Not sure if there's anything I missed. Can you help me understand the error?

@Tiano2017 try put parameters parameter into body as defined in swagger file. sample: https://github.com/Azure/azure-rest-api-specs/blob/master/specification/authorization/resource-manager/Microsoft.Authorization/stable/2015-07-01/examples/PutRoleDefinition.json#L6

@yungezz I did pretty much the same as PutRoleDefinition, but it's still failing.. any more suggestions?

@yungezz I tried a few approaches, but am still getting errors on model validation. Do you have any suggestions on what I need to do to fix them?

    },

We never respond with both validation results and error, right? (partial failure)

Refers to: specification/resources/resource-manager/Microsoft.Resources/stable/2019-07-01/resources.json:3788 in a18e248. [](commit_id = a18e2487d6fe269ea9a4a60dc250072da4276bc1, deletion_comment = True)

@majastrz For export template we can return a response that contains both results and error. For other requests I don't think we do that.

signing off on the changes added after the last sign off!


transport: bump conn window size to 16 times RPC window size

@andreimatei @petermattis

Removed the comment. @andreimatei, I don't have write access so you will need to merge this for me.

Merged. Also added you and some people as collaborators on the repo.
Although if we make more changes, we should prolly move it under cockroach.
On Fri, Apr 14, 2017 at 11:58 AM, Andrei Matei<EMAIL_ADDRESS>wrote:

Merged #1 https://github.com/andreimatei/grpc-go/pull/1.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/andreimatei/grpc-go/pull/1#event-1043478232, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAXBcWbDBkPAGnJABb3NAZBLH-0PrshDks5rv5eggaJpZM4M9H89
.


Inital JM commit - routing still pointing to express

Daithi, I have changed the remote url pointer to the fork and not the actual repo. Here is the first commit as a test. Can you confirm merge? Thanks....

https://github.com/coder-forge/website/issues/2

got the master branch updated with the meteor-app branch. Next is to update your fork, there are a few methods, but how about trying this workflow:
https://help.github.com/articles/syncing-a-fork/
First make sure you have a clean master branch:
git checkout master
git stash

Next we pull from the original repo (upstream), double check we're on master, merge the pulled upstream/master on to our local branch....
git fetch upstream
git checkout master
git merge upstream/master

closing this PR


Supplementary files

Supplementary files for the whole article. These usually contain additional information and data that cannot be captured as source code, source data, tables or figures, videos, figure supplements etc. They can also be used to avoid overly large tables in the main article e.g. if the Key resources table is huge, it may be moved to a supplementary file.
User Stories
Author

As an author, I want to be able to see any supplementary files associated with my article so that I can make sure none are missing.
As an author, I want to be able to download any supplementary files associated with my articles so that I can check the files themselves are correct.
As an author, I want to be able to update a supplementary file so that I can fix errors in the file originally supplied.
As an author, I want to be able to edit the title and caption of a supplementary file, so that I can correct any errors.
As an author, I want to be able to add reference or asset citations to my supplementary file title and legend so that I can cite other articles and assets in this context.
As an author, I want to be able to adjust the type and placement of supplementary files so that I can ensure that they display correctly within the manuscript. [E.g. change a supplementary file to source code, or to change it to source data for a figure]

Production staff

As production staff, I want to be able to add supplementary files so that I can include any missing assets.
As production staff, I want to be able to remove supplementary files, so that I eliminate anything that has been incorrectly supplied.
As production staff, I want to know why an author has changed a supplementary file so that I am aware of the reason for the change.
As production staff, I want to provide an explanation for why I am replacing a supplementary file so that I can record the reason for the change.

But what if . . . ?

Considerations

The eLife labelling scheme for these files is Supplementary file 1, Supplementary file 2 etc.
In the future, we will hopefully be able to take some of the files we currently include as Supplementary files and make them meaningful file types in their own right. Audio files, for example, really should be hosted as a media type but this is beyond our current hosting solution.
Labels will vary from publisher to publisher.
Euridit and PKP require the ability to have separate supplementary file sections for separate translations of the same content.

XML requirements
Captured as a supplementary-material in back/sec[@sec-type="supplementary-material"] element. The value of the label is 'Supplementary file X.'
<back>
     ...
     <sec sec-type="supplementary-material">
          <title>Additional files</title>
          ...
          <supplementary-material id="supp1">
                    Supplementary file 1.

                              <title>Individual data of the participants included in analysis.</title>

                    <media mime-subtype="docx" mimetype="application" xlink:href="elife-31549-supp1-v1.docx"/>
          </supplementary-material>
          <supplementary-material id="supp2">
                    Supplementary file 2.

                              <title>Selected <italic>P. falciparum</italic> gene targets and primers of qRT PCR assays.</title>

                    <media mime-subtype="docx" mimetype="application" xlink:href="elife-31549-supp2-v1.docx"/>
          </supplementary-material>
          ...
     </sec>
     ...
<back>

Erudit and PKP require the attribute xml:lang to be allowed on the following elements:

sec
supplementary-material
title
label

For example:
<sec sec-type="supplementary-material" xml:lang="en">
    <title>Title in english</title>
    <supplementary-material id="scode1" content-type="source-code">
         Label in english 1

              <title>Title in english.</title>

        <media mime-subtype="zip" mimetype="application" xlink:href="elife-31549-code1-v1.zip"/>
    </supplementary-material>
    ...
</sec>
<sec sec-type="supplementary-material" xml:lang="pt">
    <title xml:lang="pt">Title in portuguese</title>
    <supplementary-material id="scode1" content-type="source-code">
         Label in english 2

              <title xml:lang="en">Title in english.</title>

        <media mime-subtype="zip" mimetype="application" xlink:href="elife-31549-code1-v1.zip"/>
    </supplementary-material>
    ...
</sec>

Taken from: https://github.com/elifesciences/TextureRequirements/issues/61

See inVison file for design proposal


Changing the placeholder for uploading a link

Vue.js version and component version
0.8.1 - vue
3.0.6 - editor
NOT A BUG
Just wondering if there is a way to update the placeholder when uploading an image.. such as "Embdded url" to "Upload a video"

I believe that this is done via CSS in Quill itself.
Here is some code snippet for inserting a link in german language:
.ql-snow .ql-tooltip[data-mode="link"]::before {   content: "Link eingeben:"; } .ql-snow .ql-tooltip.ql-editing a.ql-action::after {   content: 'Speichern'; }


Multiple Rocketlets: Include Folder in log

When packaging a dev environment with multiple rocketlets, the log does not read which rocketlet is affected by the error message:
[08:30:20] Starting 'package-for-develop'...
[08:30:20] ✖ rocketlet.json has 7 validation error(s)
[08:30:20]    › Error: Missing required property: name

How to reproduce: Create a new folder in rocketlets, add a rocketlet.json with an empty object {} and run npm start

Yes indeed 👍

This is actually currently in place and is outputted after the validation errors:
[03:44:53] ✖ github/rocketlet.json

But I am going to change it to say:
[03:44:53] ✖ github/rocketlet.json has failed to validate


Question/suggestion: cubing of gems and runes

Details
Is horadic_cube.go just for opening cow level? Or can it be used to cube gems and runes? How do you enable gems cubing?
Version
v0.4.0-beta6

That's still not a feature that's implemented in the bot. I am working on it but it will require to first update some aspects of the d2go library before we can implement it successfully.

I will close this ticket, a preview version working with gems has been already implemented and will be published with the next release.


Preview download url

Preview versions are located at https://minecraft.azureedge.net/bin-linux-preview/bedrock-server-{VERSION}.zip
So /bin-linux-preview/ instead of /bin-linux/
Would it be possible to accept some env variable for setting this? Or perhaps accepting DOWNLOAD_URL as an env varialble?
Thanks!

Yeah, either or both sound like great options. Over on Java edition I have it handle VERSION=SNAPSHOT so could do the same here with a PREVIEW version.

This would be perfect - it appears that with the latest Minecraft Preview on Xbox One, I cannot join the current 'latest' version of the docker. Is there a potential workaround @itzg?

Is there a download page for the previews? I just realized that otherwise it will need to be a manual version and a preview flag.

I just downloaded it from here: https://www.minecraft.net/en-us/download/server/bedrock
I replaced the "bedrock_server" on the Docker volume, and restarted it. It's worked for now!

Thanks. I hadn't even noticed they added the preview download to that page.


Status Widget Shows Loading

statuspage.io is now returning a 400 error when loading the status.
The curl works ok:
curl https://lrlkfrhrjrpk.statuspage.io/api/v2/summary.json

Must be something within Angular that's causing the problems

I can see the error and can replicate it.
Error:
XMLHttpRequest cannot load https://lrlkfrhrjrpk.statuspage.io/api/v2/summary.json. Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.

Fixed with this pull https://github.com/cucumber-tony/cucumber-frontend/pull/473


Add reports-only install

Setting up reporter twise is a legitimate scenario, but there is no protection against calling setupReportStoreWithPath: after a full installation.


Split indexer verticle

Extract chunk functions out of index verticle to make index verticle more generic

I updated to request.
Maybe it would be a good idea to restructure the log messages, too. Because the IndexVerticle logs everything, the messages are very abstract ("Indexing documents" instead of "Indexing chunks" for example).


broken image link in user-agent-switcher.md

browsed from the blog to github for technical details - tried to click on broken link to the CNC image, actual path should have been this one
Thanks for the very interesting article!

Sorry about this - to render the page locally you need to use Jekyll, the markdown files are more of the "source" than the destination article. I didn't have time to finish the article so I linked to the in-progress source instead :)


Dockerfile.dapper: Make dapper build again

The current code on master no longer builds properly. One would get
this message:
"Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
docker-ce : Depends: containerd.io but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
The command '/bin/sh -c apt-get update &&     apt-get install -y 'docker-ce=5:18.09.1~3-0~ubuntu-xenial' bash git jq' returned a non-zero code: 100
FATA[0287] exit status 100
make: *** [Makefile:11: ci] Error 1"
This patchset uses a contemporary golang build container to mitigate
this issue.

/assign @ibuildthecloud


Verified employee uses undocumented attestations accessTokens and cannot load in Microsoft authenticator app

I would like to issue a VC for the 'Verified Employee' credential type. This does not work with the blocking message on the Microsoft authenticator app:
Please log in with your 'xxxxxx' account to receive this credential

The application created the VC correctly and the VC is loaded onto the phone app.
If I create a custom VC with the same credential claims using a different attestation, the VC can be issued.

How do I solve this problem to complete the loading of the VC on the app?

Adding the "?manifestType=claimInjection" fixed the issue, maybe I could create a PR and add this to the docs?
//get the manifest from the appsettings, this is the URL to the Verified Employee credential created in the azure portal.
//the ? parameter is needed for the myaccount page to work with the Verified Employee credential. This will force the system
//to use accept an idtokenhint payload and ignore the accesstoken flow which is the default for employment credentials
payload["manifest"] = _configuration["VerifiedEmployeeId:manifest"] + "?manifestType=claimInjection";

Can you add docs about the attestations 'accessTokens' type which is used for the  'Verified Employee' credential type?

Greetings Damien

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: f47338c7-5503-fab8-11fd-f3260dc568bc
Version Independent ID: 2304a681-074e-755a-05f8-884aaa76518c
Content: Customize your Microsoft Entra Verified ID - Microsoft Entra
Content Source: articles/active-directory/verifiable-credentials/credential-design.md
Service: decentralized-identity
Sub-service: verifiable-credentials
GitHub Login: @barclayn
Microsoft Alias: barclayn

@damienbod
Thank you for bringing this to our attention.
I've delegated this to content author @barclayn, who will review it and offer their insightful opinions.

@barclayn
Could you please review add comments on this, update as appropriate.

@damienbod thank you for reaching out. Unfortunately, this sort of issue is best handled via a support incident. I hope you are unblocked at this time. #please-close

@barclayn I found a solution but had to reverse engineer it. Why not add this to the docs, so others won't run into the same problem?


Deno.env.get('SUPABASE_URL') -> 'http://kong:8000'

When using supabase start or supabase functions serve the SUPABASE_URL env var inside the function which as far as I can tell is managed only by supabase is set to 'http://kong:8000'
(Maybe this is intended? I realize kong is supposed to be a gateway -- but when supabase start is running, kong is not resolving)
To Reproduce
Steps to reproduce the behavior:

SUPABASE_URL is not set in .env (it shouldn't be afik)
Nothing unusual in config.toml (as far as I know)

supabase start or supabase functions serve
Inside function index.ts console.log('suabaseUrl: ' + Deno.env.get('SUPABASE_URL'))

[Info] supabaseUrl:  http://kong:8000
Expected behavior
I believe this should be the api url? Like http://<IP_ADDRESS>:54321
System information

Version of OS: MacOS Sonoma 14.6
Version of CLI:supabase -v 1.200.3
Version of Docker:docker -v Docker version 27.1.1, build 6312585
Versions of services: [output from supabase services command]

        SERVICE IMAGE      │      LOCAL       │   LINKED
  ─────────────────────────┼──────────────────┼─────────────
    supabase/postgres      │ <IP_ADDRESS>       │ <IP_ADDRESS>
    supabase/gotrue        │ v2.162.1         │ v2.162.1
    postgrest/postgrest    │ v12.2.3          │ v12.2.3
    supabase/realtime      │ v2.30.34         │ -
    supabase/storage-api   │ v1.11.7          │ v1.11.7
    supabase/edge-runtime  │ v1.58.3          │ -
    supabase/studio        │ 20240729-ce42139 │ -
    supabase/postgres-meta │ v0.83.2          │ -
    supabase/logflare      │ 1.4.0            │ -
    supabase/supavisor     │ 1.1.56           │ -

I guess that is what it is supposed to be. 'kong' I guess is a hostname that resolves inside the containers. The documentation isn't super clear that you should expect SUPABASE_URL to be set to this when running locally


Integrate with Searx api

I would be great to contribute our info to the Searx metasearch engine. They have an api. https://asciimoo.github.io/searx/

I'm going to close this since @hellofornow seems to have a solution
I have removed the CSRF token requirement


How to run a Tensorboard in HDFS ?

Hi to everyone,
How should I do to be able to run tensrboards on hadoop (eg tensorboard --logdir ). In this case the logdir should refer to a path on the hdfs?
In spark streaming example it should be specified in -tb

There are a couple things required to make this work:

As you mentioned, you should enable running the TensorBoard process (on worker:0) by passing "true" to the tensorboard argument of TFCluster.run.
The tensorboard events must be written to HDFS (vs. the default local storage on worker:0).  This can be done by specifying the logdir argument when launching the cluster via TFCluster.run.
Since TensorFlow will be writing to HDFS, you must fully specify the mnist_model path (preferably using the default keyword for the namenode), e.g. hdfs://default/user/${USER}/mnist_model.

This should write the TB events on HDFS, and allow the TB server to read events during training.
Then, after the training job has completed, you can launch a TB server on a Hadoop gateway to view the "historical" data via a command line like this:
export LD_LIBRARY_PATH="$PYTHON_HOME/lib:$JAVA_HOME/jre/lib/amd64/server:$HADOOP_PREFIX/lib/native/Linux-amd64-64"
export HADOOP_HDFS_HOME=/home/gs/hadoop/hdfs
export CLASSPATH=$(hadoop classpath --glob)

${PYTHON_HOME}/bin/python ${PYTHON_HOME}/bin/tensorboard --logdir hdfs://default/user/${USER}/mnist_model

Perfect instruction, tensorboard works, but no processing data is displayed, maybe there is a problem with the spark streaming processing.

Is there anything in your model directory on HDFS?
You should have a graph.pbtxt, mode.ckpt-*, and hopefully events.out.*
If not, can you provide your command line?

This is the contents of model directory:

And this is the command line:
$SPARK_HOME/bin/spark-submit --py-files TensorFlowOnSpark/tfspark.zip,TensorFlowOnSpark/examples/mnist/streaming/mnist_dist.py --conf spark.executorEnv.LD_LIBRARY_PATH=$LD_LIBRARY_PATH --driver-library-path=$LIB_CUDA TensorFlowOnSpark/examples/mnist/streaming/mnist_spark.py --images stream_data --mode train --model model --tensorboard
This for run tensorboard:
$PYTHON_ROOT/bin/python /opt/anaconda/bin/tensorboard --logdir hdfs://user/hder/model
I try the example "TensorFlowOnSpark using Spark Streaming" on yarn cluster.

--model model should also be --model hdfs://user/hder/model

I partially solved, the graph in tensorboard is generated, but now tensorflow generates this error:

All the variables are initialized in the supervisor (via init_op = tf.global_variables_initializer()), I do not understand where the problem is.

Did you make sure to delete any prior mnist_model directory before re-running?

yes, I solved this problem, it depends on the insufficient memory on the gpu, now it works.
However, I continue to display only the graph of the interactions of the model, while the data flow no. The problem could be related to spark streaming, which does not correctly capture the data stream ?. I followed the example of the tutorial step by step.

Possibly.  Do the spark UI (and/or logs) show that it's picking up any NEW data?

I think that's the problem, he's always listening for new data, but there's no evidence of such data. I can not even print them on video.


Error of unknown provenance in GEMINI vcf preparation workflow

I have an error of unknown (or at least, complicated) provenance and would appreciate some help. I am working on non-batched Exome-Seq samples with the Freebayes pipeline and GRCh37. Effects with vep, no realignment/recalibration/phasing and only pre-alignment quality binning. After Freebayes did its thing, GEMINI complains upon importing the post-processed Freebayes VCFs that the DPB fields in the imported VCF chunks are not of the correct data type (float). It then cancels the import for that chunk (without stopping the pipeline, which just continues to 'complete' and upload the broken data, but that is a separate issue that could be addressed).
Upon closer inspection, it becomes clear that the imported *-freebayes-nomultiallelic.vcf.gz file (* denotes the sample name which is of no importance here) is broken. Specifically, some variant rows (case 1) contain a valid CSQ (the VEP effect annotation) but a missing DPB (depth) field, while other variant rows (case 2) contain a DPB field label in the variant rows that point to information of the CSQ field: DPB=synonymous_variant|tcA/tcG|S|ENSG00000186092|OR4F5|ENST00000335137|1/1|||60/305|protein_coding|YES|CCDS30547.1|||;
Case 2 is a serious error where GEMINI rightly throws its exception, since DPB here contains string information (the CSQ data) rather than a float (the depth). Closer inspection reveals that case 1 entries originate from *-freebayes-multiallelic-decompose-vepeffects.vcf.gz while the case 2 entries originate from *-freebayes-biallelic.vcf.gz. Both are merged into  *-freebayes-nomultiallelic.vcf.gz by the merge_sorted() method.
I tried to backtrack where things may have gone wrong, now in chronological order as orchestrated by variation.multiallelic.to_single that seems to do the post-processing of Freebayes VCFs for GEMINI:
The annotated Freebayes VCF *-freebayes.vcf.gz is well-formated and contains both DPB and CSQ header definitions; for biallelic variants DPB entries are present in the variant rows while for multiallelic variants they are not (I assume they are not defined for multiallelic variants?)
_split_mulitallelic() takes *-freebayes.vcf.gz and produces *-freebayes-biallelic.vcf.gz and *-freebayes-multiallelic.vcf.gz. Here we may already see the possible source of the error. *-freebayes-biallelic.vcf.gz is well-formated, but *-freebayes-multiallelic.vcf.gz has a DPB entry only in the header (as an INFO definition) but not in any of the variant rows.
_decompose() takes the *-freebayes-multiallelic.vcf.gz and produces a *-freebayes-multiallelic-decompose.vcf.gz, which has good CSQ definition/row entries but is missing DPB completely from header or variant rows.
add_to_vcf() (which delegates to run_vep()) takes *-freebayes-multiallelic-decompose.vcf.gz and produces *-freebayes-multiallelic-decompose-vepeffects.vcf.gz, which has good CSQ definition/row entries as well as a DPB INFO header definition but an empty entry ;; where the DPB definition should be placed in the variant rows (so both key and value are missing, but there is an empty spot marked by the semicolon field separators for them). This may or may not be VCF standard compliant.
merge_sorted() then takes that broken (?) *-freebayes-multiallelic-decompose-vepeffects.vcf.gz and the well-formated *-freebayes-biallelic.vcf.gz and produces the erroneous output described at the top of this post, probably by merging in the multiallelic data into the biallelic data and somehow having problems with field ordering due to the ;; entry that results in the mislabeled CSQ entry. Notably, merge_sorted() always uses the header of the first input file (*-freebayes-multiallelic-decompose-vepeffects.vcf.gz) as the header of the resulting output file without checking for header identity, which may or may not have an influence on this issue.
So the question is, which of the outputs is the first malformated VCF, and why is it generated that way? Second, could we perhaps stop the whole pipeline when GEMINI cannot read in a VCF chunk? Else these kinds of errors will not be noticed since they are burried in the logs since chunks that do not have problematic entries are read in okay while problematic chunks are skipped, so there is a output file if at least one chunk was okay and users may not notice that an error has occurred.

Update: So I ran run_vep() manually, removed the double semi-colon (;;) and then merged again manually using the merge_sorted() code in bcbio. Still the malformated output of merge_sorted()  persists. When I try to use the header of the second input file instead (so using the header of *-freebayes-biallelic.vcf.gz) I get a core dump of the python interpreter.

Update 2: I replaced merge_sorted() with GATK CombineVariants (using parameters --assumeIdenticalSamples --genotypemergeoption UNSORTED, both of which are probably insufficient to produce a sorted VCF, but that was not the point) and the resulting file is well-formated and should be readable by GEMINI just fine. I had to remove the ;; (by sed 's/;;/;/g' ) since otherwise GATK complains about an undefined field. I therefore suggest that the merge_sorted() function should not be trusted (likely due to an error in pysam.VariantFile) and that it should be replaced by an external tools such as GATK or bcftools followed by sorting (there is a newer version of bcftools out with different parameters than the older version that bcbio ships).

Sven-Eric;
Thanks for the report and I'll the detective work on this. I'll definitely have a look and try to figure out what pysam.VariantFile is doing wrong. We specifically avoid CombineVariants or bcftools alternatives as those merge the biallelic variants we split with vt back together.
The best fix is to avoid all the split/combine logic and use vt decompose on the full file directly. I'd avoided this earlier just to prevent potentially causing issues on non-biallelic variants when decomposing. But by adding all this complexity it seems like I've introduced new issues. I'll work on pushing a simplification of this workflow.
Regarding GEMINI not failing if a part fails, that is worrisome. We'll have to debug it on the GEMINI side as it should be failing out with error code instead of making a partial database (and then bcbio thinks things went well). I'll see if I can reproduce and fix as well.
Thanks again for the work trying to sort these out.

Thanks a lot for looking into it, Brad. Of course, simplifying the workflow could be best in the end to avoid hassles and in the future and increase maintainability. Naive question regarding bcftools, though: isn't bcftools concat just a dump concatenator that doesn't actually merge the variants? There's also bcftools merge, so they're different beasts, aren't they?
Regarding GEMINI, this is the stack trace for one of the chunks (this repeats for all of the problematic chunks):
[2015-05-04T13:07Z] ip-172-31-2-5: Traceback (most recent call last):
[2015-05-04T13:07Z] ip-172-31-2-5:   File "/cluster/software/bcbio_dev/app/bin/gemini", line 6, in <module>
[2015-05-04T13:07Z] ip-172-31-2-5:     gemini.gemini_main.main()
[2015-05-04T13:07Z] ip-172-31-2-5:   File "/cluster/software/bcbio_dev/lib/anaconda/lib/python2.7/site-packages/gemini/gemini_main.py", line 1076, in main
[2015-05-04T13:07Z] ip-172-31-2-5:     args.func(parser, args)
[2015-05-04T13:07Z] ip-172-31-2-5:   File "/cluster/software/bcbio_dev/lib/anaconda/lib/python2.7/site-packages/gemini/gemini_main.py", line 271, in loadchunk_fn
[2015-05-04T13:07Z] ip-172-31-2-5:     gemini_load_chunk.load(parser, args)
[2015-05-04T13:07Z] ip-172-31-2-5:   File "/cluster/software/bcbio_dev/lib/anaconda/lib/python2.7/site-packages/gemini/gemini_load_chunk.py", line 733, in load
[2015-05-04T13:07Z] ip-172-31-2-5:     gemini_loader.populate_from_vcf()
[2015-05-04T13:07Z] ip-172-31-2-5:   File "/cluster/software/bcbio_dev/lib/anaconda/lib/python2.7/site-packages/gemini/gemini_load_chunk.py", line 130, in populate_from_vcf
[2015-05-04T13:07Z] ip-172-31-2-5:     for var in self.vcf_reader:
[2015-05-04T13:07Z] ip-172-31-2-5:   File "parser.pyx", line 1063, in cyvcf.parser.Reader.__next__ (cyvcf/parser.c:19124)
[2015-05-04T13:07Z] ip-172-31-2-5:   File "parser.pyx", line 1112, in cyvcf.parser.Reader.parse (cyvcf/parser.c:19838)
[2015-05-04T13:07Z] ip-172-31-2-5:   File "parser.pyx", line 894, in cyvcf.parser.Reader._parse_info (cyvcf/parser.c:16800)
[2015-05-04T13:07Z] ip-172-31-2-5:   File "parser.pyx", line 47, in cyvcf.parser._map (cyvcf/parser.c:2191)
[2015-05-04T13:07Z] ip-172-31-2-5: ValueError: could not convert string to float: missense_variant|Tgt/Cgt|C/R|ENSG00000166359|WDR88|ENST00000355868|7/11|benign(0)|tolerated(1)|310/472|protein_coding|YES|CCDS12429.1|||

Regarding GEMINI: I believe this part may be responsible for error checking of the parallel chunk loading, but it does not look at error codes at all. So from GEMINI's perspective, it cannot differentiate a successful chunked load from a failed one and will probably always exit with status code 0. Perhaps that is something that ahs to be solved upstream.

Sven-Eric;
Thank you for all of this debugging. I pushed fixes to bcbio to avoid the problematic merge and use vt decompose directly on the full file. I hope this simplified workflow will now work cleanly for you. Please re-open if you still find issues.
I also pushed a fix upstream to GEMINI to catch and report errors in chunks so any future issues will be more obvious and not proceed through with a truncated database.
Thanks again.

Great, thanks a lot for the quick implementation!


spawning too many Networks makes Network::new() fail

this is because the available IP address space gets exhausted. we should

reduce the address space of each Network
add a mechanism to make Network::new wait if there are too many other live Networks (e.g. a semaphore) or there's no address space available (e.g. a retry mechanism with exponential back-off)

The containers and the networks are not cleaned up when the tests are run via cargo watch because changes in files make cargo watch kill the last cargo test process. when the cargo test process and its children, which includes the test runner process, are killed the Container and Network destructors are not run (the destructors are in charge of removing the containers and networks).
This should be documented in the README and we should advise people to not run tests through cargo-watch


Gateway monitoring remote IPs don't get removed from routing table when removed from monitoring

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[X] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[X] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
When adding a new IP to gateway monitoring, the IP get's bound to the interface that holds the gateway in the routing table.
When removing the IP from gateway monitoring, the routing table still contains said IP.
To Reproduce
Steps to reproduce the behavior:

Go to System > Gateways > Configuration
Modify a gateway and add a monitor IP (let's say <IP_ADDRESS>), then click on Apply

Now navigate to System > Routes > Status
You will see the monitor IP in the routing table, bound to the interface which holds the gateway we just configured

Come back to System > Gateways > Configuration
Change the gateway monitor IP and apply
Navigate back to System > Routes > Status

The former IP <IP_ADDRESS> which has been removed in gateway monitoring configuration is still in the routing table.
Expected behavior
When changing / removing a gateway monitor IP, one would expect the corresponding routing table entry to be deleted.
Describe alternatives you considered
Manually removing entries after gateway monitor IP changes.
Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 24.1.10_3 (amd64) on KVM with virio NICs
Also happens on other OPNSense instances I have.

I don’t think this will fix without separate route tables or some form of annotations to routes (which do not exist). The risk of removing a route set elsewhere is real, especially with multi-wan and pinned DNS host routes.

Makes sense. IMO separate routing tables would be more difficult for diagnosis.
Perhaps the solution you suggest, like a "generated-by" field with static/dns/gateway-monitor could be an elegant way to improve the behavior, and allow dns/gateway-monitor entries to be removed automatically on changes.
I use OPNsense since the m0n0wall times, and to be fair I never noticed that issue until now when I got strange routing problems because of it.
Is there a chance that this could be implemented ?

@fichtner Just a side question, why is this issue labeled support ? I just suggest an improvement, I don't need any support.
Thanks.

Still an issue. Any plans or is this just a bordercase ?


Do not require users to choose a data type for Decimals

@dyf can you add a description for what this means

Right now, the app renders Decimal fields as a drop down. The data type defaults to 'null' with no input, and requires the user to select a data type (either string or number) to input a value. @dyf can you confirm whether this is the issue you're referring to?


We need translation support

Hi,
@jrieken @chrisdias
We need translation support.
Btw, I can help with French & German.
Thanks,
HLFH

I can help with Portuguese

I can help with Simplified and Traditional Chinese.

I can help with spanish

There is a folder named locales, but all files in it are blank. I believe translate support will come soon.

Is there another issue telling about this folder?

I can help with Indonesian

This is work in progress, this is the corresponding plan item #2041.

Good, i will help with spanish traslation.

@dbaeumer This should now be closed?

Closing since we do have translation now for major language. The item still open is that we allow external contributions to the translation which we have on the backlog.


merge package template from Kronos-Tools/npm-package-template-minimal

package.json

chore(engines): update<EMAIL_ADDRESS>from template

Codecov Report

Merging #227 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #227   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           2      2
  Lines           9      9
=====================================
  Hits            9      9

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 062699d...fe0083f. Read the comment docs.


Images: Update Home pg hero images

Pull in new images on the left and right sides. Middle image remains the same.
See design file for details
https://www.figma.com/proto/NAFkgq34abW6uJ0R7PW24T/Prototype---Clean-%26-Green-Philly?page-id=187%3A12602&type=design&node-id=2592-30019&viewport=-657%2C-623%2C0.1&t=fqZvOvLyE9qv7AAV-8&scaling=min-zoom&starting-point-node-id=2592%3A30019&hide-ui=1

I think this has been done already. The images all look correct. https://www.cleanandgreenphilly.org


CSV Import IP range

Issue type
[X] Feature request
[ ] Bug report
[ ] Documentation
Environment
Python version: 3.5.2
NetBox version: 2.2.1

Description
When using the IP Address Import (from CSV) you are today unable to add an IP range like in the bulk option when adding manually.
Would be nice to be able to import ranges instead of individual IPs.
E.g:
address,status
10.10.10.[50-60],active

CSV import requires exactly one object per line. This is a fairly universal scheme and we won't deviate from it. If you need to replicate many addresses within a range, you'll need to either script out the generation of a CSV, or script out their creation directly within the Python shell.


Fixes #2489. Build scrolling into View.

Fixes

Fixes #2489

Proposed Changes/Todos

[x] Added ViewScrollBar.cs as partial View
[x] Implemented handling for layout and mouse with adornments.
[x] Implementing the built-in scroll bar on the views that already was using scroll bar.
[x] TextView need to have an additional column for the cursor on the last column be always visible and now the word wrap behaves differently on edit and read-only mode.

Pull Request checklist:

[x] I've named my PR in the form of "Fixes #issue. Terse description."
[x] My code follows the style guidelines of Terminal.Gui - if you use Visual Studio, hit CTRL-K-D to automatically reformat your files before committing.
[x] My code follows the Terminal.Gui library design guidelines
[x] I ran dotnet test before commit
[x] I have made corresponding changes to the API documentation (using /// style comments)
[x] My changes generate no new warnings
[x] I have checked my code and corrected any poor grammar or misspellings
[x] I conducted basic QA to assure all features are working

Oooh! I'm excited to dive into this.

I broken the scroll bar on the ComboBox with the commit https://github.com/gui-cs/Terminal.Gui/pull/3254/commits/5e3be5fe5cd2df05dea91ccbb9b552d4cdb18021.

The commit https://github.com/gui-cs/Terminal.Gui/pull/3254/commits/53b3e81427da9e1255151fd93308fd79af5766d9 fix it.

I prefer auto-hide as true by default because if a scroll bar isn't needed then don't show, unless if we really want showing them always. See this effect:
https://github.com/gui-cs/Terminal.Gui/assets/13117724/51f9d0fd-5b29-4624-8e89-66a4191d306d

Please, when using AssertDriverContentsWithFrameAre on unit tests use the @"", otherwise R# will break it.

Please, when using AssertDriverContentsWithFrameAre on unit tests use the @"", otherwise R# will break it.

I think I see what might have happened for you. It looks like trailing whitespace in some lines of those strings was erroneously removed, but only when it's a raw string literal inside a method call - not when it's assigned to a variable or constant.
Looks like a bug, to me. I'll file an issue report with JetBrains about that. I ran into the same thing on certain tests, which is why some were already left as verbatim strings instead of raw strings.
You can also disable the formatter for a section of code by using these comments around such sections:
// @formatter:off
...
// @formatter:on

Since it doesn't nuke the spaces if the raw string is assigned to a variable or constant, I suspect the issue is that it is incorrectly applying the rules of method call parameters, which enforce max of 1 consecutive space.
I'll get a hold of them on Monday and see if there's already a known way to make that behave how we want or if it's a bug.

Advice to never use this code if you are separately assigning the values and checking equality for both properties because only one is changed at a time.
            ContentOffset = ContentOffset with { X = -LeftColumn };
            ContentOffset = ContentOffset with { Y = -TopRow };

Instead assign the value once and the equality check is always right.
            ContentOffset = new Point (-LeftColumn, -TopRow);

I don't trust very much in the keyword with in these situations.

Advice to never use this code if you are separately assigning the values and checking equality for both properties because only one is changed at a time.
            ContentOffset = ContentOffset with { X = -LeftColumn };
            ContentOffset = ContentOffset with { Y = -TopRow };

Instead assign the value once and the equality check is always right.
            ContentOffset = new Point (-LeftColumn, -TopRow);

I don't trust very much in the keyword with in these situations.

That's not proper usage of with anyway.
If you are changing all parts of a value, then use the constructor (the analyzer should even give you that tip).
Otherwise, if you're not assigning everything, you do it all at once, as if you were using an initializer. Doing it in a single assignment is the important part, whether you use with or new. with is non-destructive mutation, which is a shortcut for copying the instance and assigning the specified values in an initializer. Exact constructors, when they exist, are always preferred when you'll be setting everything.
For the above example, this would be the correct with expression:
ContentOffset = ContentOffset with { X = -LeftColumn, Y = -TopRow };

But, again, since both values are being changed, the constructor is preferred anyway.

An important thing about with, however, is that it is not only legal on structs, but also on record classes.
Regardless of whether it is used on a reference or value type, however, it will always result in a new instance. It is a by-value shallow copy operation, whenever it is used on any type, value or reference. Therefore, you will have a new object with all members copied by value. So value type members will be actual copies of the values, and reference type members will be copies of the references, meaning those will still point to the same objects as the original instance.
No explicit constructors declared on the type are executed to create the copies, with one exception.
The way it is done, under the hood, is that a copy constructor is generated at compile time, and that is called to create the new instance. For structs, this cannot be overridden. For records, it can be overridden by providing your own copy constructor (a constructor taking only an instance of the same type), if you want to customize how the copy is made (such as providing a deep copy, for example).

One other thing that is a perk to using with when appropriate:
If the value type you are mutating is not mutable, it prevents ephemeral changes to values from not actually changing the value on the struct, as shown here:
SomeImmutableStruct x = new {SomeImmutableProperty = 0};
x.SomeImmutableProperty = 1;
Console.WriteLine(x.SomeImmutableProperty); // Prints 0

Line 2 creates a new SomeImmutableStruct and then just forgets about it, and x goes unchanged.
Re-assigning x is necessary, whether using a constructor or with. Which one you do is only relevant if the behavior of the constructor is important. Otherwise, it's just a matter of style.

Here's the documentation for the with operator if you are curious.
It's a pretty short one because it really is as simple as what I said here already. :)
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/with-expression

Oh. It also works on anonymous types, apparently (just learned that from the doc). Though I don't think we use those anywhere anyway outside of Tuples. Interesting anyway. 🤷♂

One thing I also like to use it for, when the situation arises, is to make a quick copy of something with the same values. You can do that by providing empty brackets, like x with {}. Give you a new instance with all values the same. Even on value types, which would copy implicitly, I kinda like doing that anyway because it makes the intent explicit.

Assert.Equal ($"Combine(View(Width,FrameView(){f1.Frame})-Absolute(2))", v1.Width.ToString ());
@dodexahedron this kind of unit test is dangerous because it not guarantee that the test is really right. In this case it's a Dim test and it only print the Frame that both really must have the same value, but if it's using to compare some calculations than can diverge from the Frame value, it'll never fail, even they aren't right. But of course that you already know that :-)

After doing a cleanup code R# re-adds type name on object initializers. What I need to do?
Before:
        _contentOffset = new (-Math.Abs (offset.X), -Math.Abs (offset.Y));
        _contentView.Frame = new (_contentOffset, _contentSize);

After:
        _contentOffset = new Point (-Math.Abs (offset.X), -Math.Abs (offset.Y));
        _contentView.Frame = new Rectangle (_contentOffset, _contentSize);

Please, when using AssertDriverContentsWithFrameAre on unit tests use the @"", otherwise R# will break it.

I think I see what might have happened for you. It looks like trailing whitespace in some lines of those strings was erroneously removed, but only when it's a raw string literal inside a method call - not when it's assigned to a variable or constant.
Looks like a bug, to me. I'll file an issue report with JetBrains about that. I ran into the same thing on certain tests, which is why some were already left as verbatim strings instead of raw strings.
You can also disable the formatter for a section of code by using these comments around such sections:
// @formatter:off
...
// @formatter:on

Since it doesn't nuke the spaces if the raw string is assigned to a variable or constant, I suspect the issue is that it is incorrectly applying the rules of method call parameters, which enforce max of 1 consecutive space.
I'll get a hold of them on Monday and see if there's already a known way to make that behave how we want or if it's a bug.

Following up on this.
They are already aware of the bug and have it marked critical. So it'll likely be getting fixed soon.

After doing a cleanup code R# re-adds type name on object initializers. What I need to do?
Before:
        _contentOffset = new (-Math.Abs (offset.X), -Math.Abs (offset.Y));
        _contentView.Frame = new (_contentOffset, _contentSize);

After:
        _contentOffset = new Point (-Math.Abs (offset.X), -Math.Abs (offset.Y));
        _contentView.Frame = new Rectangle (_contentOffset, _contentSize);

@dodexahedron can you add some configuration so R# doesn't change this please.

After doing a cleanup code R# re-adds type name on object initializers. What I need to do?
Before:
        _contentOffset = new (-Math.Abs (offset.X), -Math.Abs (offset.Y));
        _contentView.Frame = new (_contentOffset, _contentSize);

After:
        _contentOffset = new Point (-Math.Abs (offset.X), -Math.Abs (offset.Y));
        _contentView.Frame = new Rectangle (_contentOffset, _contentSize);

@dodexahedron can you add some configuration so R# doesn't change this please.

Did the change in #3279 take care of this for you, @BDisp?
The settings were changed to always prefer target-typed new whenever possible, and changed the warning behavior to only warn when it ISN'T being done that way (so opposite of what it was doing to you).

This test sometimes fails.
[xUnit.net 00:01:02.49]     Terminal.Gui.InputTests.EscSeqUtilsTests.DecodeEscSeq_Tests [FAIL]
[xUnit.net 00:01:02.49]       Assert.Null() Failure: Value is not null
[xUnit.net 00:01:02.49]       Expected: null
[xUnit.net 00:01:02.49]       Actual:   View(){X=0,Y=0,Width=80,Height=25}
[xUnit.net 00:01:02.49]       Stack Trace:
[xUnit.net 00:01:02.49]         D:\a\Terminal.Gui\Terminal.Gui\UnitTests\Input\EscSeqUtilsTests.cs(774,0): at Terminal.Gui.InputTests.EscSeqUtilsTests.DecodeEscSeq_Tests()
[xUnit.net 00:01:02.49]            at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
[xUnit.net 00:01:02.49]            at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)
[xUnit.net 00:01:02.50]   Finished:    UnitTests
[xUnit.net 00:01:02.50] Canceling due to test failure...
  Failed Terminal.Gui.InputTests.EscSeqUtilsTests.DecodeEscSeq_Tests [9 s]
  Error Message:
   Assert.Null() Failure: Value is not null
Expected: null
Actual:   View(){X=0,Y=0,Width=80,Height=25}
  Stack Trace:
     at Terminal.Gui.InputTests.EscSeqUtilsTests.DecodeEscSeq_Tests() in D:\a\Terminal.Gui\Terminal.Gui\UnitTests\Input\EscSeqUtilsTests.cs:line 774
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)

Test Run Failed.
Total tests: 5857
     Passed: 5856
     Failed: 1
 Total time: 1.1381 Minutes
       _VSTestConsole:
         MSB4181: The "VSTestTask" task returned false but did not log an error.
     3>Done Building Project "D:\a\Terminal.Gui\Terminal.Gui\UnitTests\UnitTests.csproj" (VSTest target(s)) -- FAILED.
     1>Done Building Project "D:\a\Terminal.Gui\Terminal.Gui\Terminal.sln" (VSTest target(s)) -- FAILED.

@BDisp My recommendation re: #3254 is:

[ ]  Start with a fresh branch based on this branch (effectively abandoning Fixes #2489. Build scrolling into View. #3254).

I already did much changes here and I have no discernment to start again.

git checkout tig-v2_3273_FOUND-finddeepestview git checkout -b v2_3295-Fixes-Add-Scrolling-To-View
[ ]  Create a new "Scroll in View" Scenario based on Adornments.cs that can be used to experiment and test.

I think the best working scenario for this is recovering the scroll bar on the views that used them before and was broken, like the TextView, ListView, TableView, TreeView, etc... and I implemented on all of them.

[ ]  Create a new view ScrollBar. Make it just render something distinct; do not try to move old ScrollBarView code over yet.
[ ]  Add public ScrollBar HoriztontalScrollBar and public ScrollBar VerticalScrollBar to View

In my opinion the best way to manage the scroll bars is by not exposing them directly to the users and using a flag to enable them. Imagine a user can do on the HorizontalScrollBar = new ScrollBarView { Oreintation = Orientation.Vertical } and thus we will have two vertical scroll bars.

[ ]  Change Padding.BeginInit to Add(Parent.HoriztonalScrollBar, Parent.VerticalScrollBar)

I think we only should add to the superview if the scroll bars are enable instead of they always was added without needed.

[ ]  Change Padding.LayoutStarted to position the scrollbars in Padding

I swearer that I did try only using the superview LayoutStarted event but sometimes the necessary information wasn't get before the scroll bar are drawn.

[ ]  Start testing/playing with ScrollBar.OnMouseClick to ensure it's working properly.

Until now they are working correctly.

THEN, start moving ScrollBarView code over to ScrollBar.
This will ensure you are utilizing all the Adornment stuff I've finally gotten working (I think) correctly in this PR. This will also help find places where I got it wrong.

All the changes you have made to the Adornment and the ViewLayout are now working correctly and confirmed.

As you find issues, submit them as PRs to this branch.

My intention is only at least help you find the best solution for you implement your own code for this.

I hope you understand this explanation. Please say if you don't agree.
    // BUGBUG: v2 - Why can't we get rid of this and just use Visible?
    // We need this property to distinguish from Visible value and the original value of this property
    /// <summary>
    /// Gets or sets the visibility for the vertical or horizontal scroll indicator.
    /// If <see cref="AutoHideScrollBars"/> is true the visibility will be handled as needed,
    /// no matter ShowScrollIndicator is true or false. It's a flag that indicates the original state.
    /// If <see cref="AutoHideScrollBars"/> is false and ShowScrollIndicator is false it'll
    /// be not visible, otherwise it will be always visible even it isn't needed.
    /// </summary>
    /// <value><c>true</c> if show vertical or horizontal scroll indicator; otherwise, <c>false</c>.</value>
    public bool ShowScrollIndicator

I'm confused as to why you are actively working on this PR. I thought you were going to re-do this based on what I come up with in #3323?

I'm confused as to why you are actively working on this PR. I thought you were going to re-do this based on what I come up with in #3323?

It's only to proof to my self that this is working and also for you leverage some of the code you think useful. At least the views where I implemented the scroll bars. Do you think this is really badly? I don't pretend that you merge anything of this but at least to check if you are get more or less he same result and even better than this. For me the final result are the views where the scroll bars worked well before continue to work after the #3323.

Gotcha.
I do not intend to touch ScrollBarView or ScrollView. I don't expect to break them either.
I will build a new Scenario that proves the new "virtual content area built into View" will work well with keyboard and mouse wheel input (no scroll bars). And I plan on removing the scroll bars from charmap as another example for now.

@dodexahedron I think there is some bug with the with keyword. See bellow where the mouse is over the Y property expecting a int type from the Point ContentOffset and it show {Center} which is the View.Pos Y property. But it really only assign the value to the Point.Y.

Mouse support for scrolling including wheel.
With scrollbars:
https://github.com/gui-cs/Terminal.Gui/assets/13117724/f21d8fda-af58-4d65-9c84-04c5c180dae4
Without scrollbars:
https://github.com/gui-cs/Terminal.Gui/assets/13117724/10b91f94-4f98-404e-800c-2a01a6bbd7da

Gotcha.
I do not intend to touch ScrollBarView or ScrollView. I don't expect to break them either.
I will build a new Scenario that proves the new "virtual content area built into View" will work well with keyboard and mouse wheel input (no scroll bars). And I plan on removing the scroll bars from charmap as another example for now.

Do you mean like this https://github.com/gui-cs/Terminal.Gui/pull/3254#issuecomment-2012209251?

Your design is flawed.  For example, notice how when I scroll the Centered Button moves relative to the other subviews in the Content area.
Also , try scrolling with mouse with the cursor over one of the subviews in the Virtual Demo View; scrolling stops. I ensured this all works.

I addressed all of this in a primitive way in my PR.
I feel scrolling should work great without scrollbars. Scrollbars, if visible should just provide a visible indication of where the content is scrolled and an additional way of scrolling. Your design is built around Scrollbars. Mine is completely abstracted from whether they exist or not.
What you've done is take the existing ScrollBarView and ScrollView code, which has always been overly complicated because it tried to hack around limitations in v1's View design, and forced that code into View. You've done an admirable job of making it mostly work, but it is a bad design.
I revisited the core design and ensured the v2 View drawing and layout code deal with a virtual content area intrinsically.  An example: In my design if ContentSize has not been set, then there's no scrolling; ContentSize is assumed to be == Viewport.Size. If the dev sets ContentSize to be bigger than Viewport.Size things just work cleanly. In your code, the dev has to set UseContentOffset and set ContentSize. And then your ContentArea also has a Size, but it's not the same as ContentSize, which is just confusing and hard to explain.
My model is pretty simple, comparatively:

A view has content. The content is bound by (0,0) in the top-left and ContentSize for width & height. There's no need for a property for this.
What is visible to the user is the Viewport which is bound by the inner rectangle of Padding. The Viewport has a location which describes where in the content it is positioned (it's location). The Viewport has a size, which describes the number of columns and rows visible.

Changing Viewport.Location changes its location within the content (e.g. the start of the content the user sees).
Changing Viewport.Size changes it's size (eg. how much of the content the user sees). This will also change the Frame size appropriately.

ContentSize is the same as Viewport.Size until a dev changes it. Once he/she does, scrolling magically is enabled and adjusting Viewport works as expected.
The Viewport can be larger, smaller, or the same size as ContentSize. If larger, zoom scenarios are enabled.
There's no need for devs to worry about ScrollBars if they don't want them.

I also think you're trying to do too much. For example, I don't think the logic for what a page is should be built into view. For example, not all use-cases define "page" as the height of the visible content.

You are right. I'm closing this because it's buggy.

I'm reopen this because I'm convinced that the SetRelativeLayout should handled the location offset, although until now it wasn't never used. This is only to proof that and not for be merged, of course.
https://github.com/gui-cs/Terminal.Gui/assets/13117724/5a0a9c30-981a-42fb-a394-80319eb4df7f

Your design is flawed. For example, notice how when I scroll the Centered Button moves relative to the other subviews in the Content area.

Yes you are right. That was because PosCombine was offsetting twice, left and right targets. I already fixed.

Also , try scrolling with mouse with the cursor over one of the subviews in the Virtual Demo View; scrolling stops. I ensured this all works.

You are right. I didn't worry about that. The only point I wanted to transmit was the offsetting is possible during the layout, instead of using always the location (0,0) and then doing the scrolling after.

I addressed all of this in a primitive way in my PR.

Yes and I really appreciated your work, but in my opinion I think you underestimated the negative location. It's possible to handle with Positive and Negative ContentOffset. If it's positive then the view will be draw scrolled to the right/bottom and if it's negative the view will be scrolled to left/top.

I feel scrolling should work great without scrollbars. Scrollbars, if visible should just provide a visible indication of where the content is scrolled and an additional way of scrolling. Your design is built around Scrollbars. Mine is completely abstracted from whether they exist or not.

Well that isn't completely right. This PR has code for scrollbars and without scrollbars handling as well. Please see better.

What you've done is take the existing ScrollBarView and ScrollView code, which has always been overly complicated because it tried to hack around limitations in v1's View design, and forced that code into View. You've done an admirable job of making it mostly work, but it is a bad design.

Well if you are talking about I'm using negative location, I think that is the right approach, unless the others API are also wrong.

I revisited the core design and ensured the v2 View drawing and layout code deal with a virtual content area intrinsically. An example: In my design if ContentSize has not been set, then there's no scrolling; ContentSize is assumed to be == Viewport.Size. If the dev sets ContentSize to be bigger than Viewport.Size things just work cleanly. In your code, the dev has to set UseContentOffset and set ContentSize. And then your ContentArea also has a Size, but it's not the same as ContentSize, which is just confusing and hard to explain.
My model is pretty simple, comparatively:

The use the UseContentOffset property is for the views that implemented the scrollbars but don't want to use the ContentOffset to re-draw because they have his own offsetting handing. Thus the ContentOffset and the ContentSize will only be used by the scrollbars and key navigation if the view doesn't handle them.
I was wrong when I said that the ContentArea.Size isn't the same as the ContentSize and I apologize for that. I didn't test before an view that has subviews and I didn't realized my mistake. Now my code is modified reflecting the right behavior, which is the ContentArea.Size is always the same as the ContentSize if UseContentOffset is true.
My approach is more generic to views and prepared to use scrollbars or not.

A view has content. The content is bound by (0,0) in the top-left and ContentSize for width & height. There's no need for a property for this.

Before you are considered using negative bounds and now you are completely against. But now I'm not talking about negative location. Now I'll talking about positive offset. Imagine you want to draw the ContentArea from (2,3) and of course the ContentOffset will be equal to X=2,Y=3. Since you are always bounds to (0,0) you can't doing what I'm proposing.

What is visible to the user is the Viewport which is bound by the inner rectangle of Padding. The Viewport has a location which describes where in the content it is positioned (it's location). The Viewport has a size, which describes the number of columns and rows visible.

As I said above the Viewport is the visible area to the user, but if the location (2,3) is still visible to the user you can't start the redraw at that location.

Changing Viewport.Location changes its location within the content (e.g. the start of the content the user sees).

You see here. So it's always equal or greater than zero but always starting at (0,0) of the Viewport. This is a limitation.

Changing Viewport.Size changes it's size (eg. how much of the content the user sees). This will also change the Frame size appropriately.
ContentSize is the same as Viewport.Size until a dev changes it. Once he/she does, scrolling magically is enabled and adjusting Viewport works as expected.
The Viewport can be larger, smaller, or the same size as ContentSize. If larger, zoom scenarios are enabled.

I agree.

There's no need for devs to worry about ScrollBars if they don't want them.

Well it seems you are killing once the use of scrollbars. Please don't use them on your applications tools, like the VS2022. It's bad.

I also think you're trying to do too much. For example, I don't think the logic for what a page is should be built into view. For example, not all use-cases define "page" as the height of the visible content.

For me a page size is always the visible content area size. This is very useful for users navigate horizontal and vertical for each visible content area and thus never loose anything on viewing them.

Some more improvements.
https://github.com/gui-cs/Terminal.Gui/assets/13117724/2187eb66-5994-4735-8619-713fb7a6f049
https://github.com/gui-cs/Terminal.Gui/assets/13117724/2edd1dac-c1a2-4628-9d15-65c7a8f94f20

I am still unsure why you are spending time continuing to work on this instead of helping get #3323 right/done.

I am still unsure why you are spending time continuing to work on this instead of helping get #3323 right/done.

I'm just trying to prove that the layout supports negative locations. I'm not trying to impose anything or ask for anything. Pretend this doesn't exist. I'm busy with other things but of course I will collaborate on #3323. Comment in #3323 what you specifically want me to collaborate on and I'll try to help as best I can.


NEST compilation directory should be cleaned when solver changes

The configuration of the compilation directory should be regenerated when the solver used changes as different libraries (e.g. Sundials) may need to be loaded

This will now be covered by #45


[Bug]: In standalone mode a spreadsheetTemplateFile should work without having to define columns

OData Version
OData V2
Draft
No
Scenario
Fiori Elements List Report
Environment
FLP On Premise
UI5 Spreadsheet Component
1.4.3
What happened?
I have a standalone scenario where I want to provide a template which allows deep upload (basically two sheets, first sheet is uploaded first, after that for each parent context I create and upload the child context from the second sheet).
I set the following config:
readAllSheets: true,
standalone: true,
spreadsheetTemplateFile: "my/namespace/bin/template.xlsx",

The "Download Template" button is still hidden. So I provided a columns setting columns: []. Button still hidden. So I added dummy columns. Button visible, template downloadable.
Could the availability of a spreadsheetTemplateFile be considered when calculating the visibility of the "Download Template" button?
Relevant log output
-

Spreadsheet Component Init
columns: ["Dummy"],
hidePreview: true,
fieldMatchType: "label",
readAllSheets: true,
standalone: true,
spreadsheetTemplateFile: "my/namespace/bin/template.xlsx",

Manifest

Thank you @MARCxGAMBIT for the Bug Report and PR.
Fix is released with version 1.6.0


Two Floating Labels.

Can I add two floating labels to a single input field so that one label is aligned to the left of the field and the other to the right.
If this was already asked, please provide a reference. Thanks in advance.

You can achieve this through some CSS,
Take a look at this simple HTML example of the label.
PasswordRequired


Unable to get the screenshot attached to reports in case of failures

Hello,
I was trying to use the plugin but I am unable to get the screenshots attached to the report in case of any failures. Can you help me here?

POM.xml ->

com.trivago.rta
cluecumber-report-plugin
1.2.1

report
post-integration-test

reporting

${project.build.directory}/cucumber-report/
${project.build.directory}/test-report

Hello @subodh2691 ,
if you attach the screenshots to the scenario in your test framework, they are automatically displayed in the report. Can you check if the screenshot is inside one of your generated Cucumber JSON files?
This should look like this:
"embeddings": [
              {
                "mime_type": "image/png",
                "data": "some large base64 encoded string"
             }

Hi @laxersaz, I was expecting this output in my json files, which is missing.
I am using this:
scenario.embed(((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES), "image/png");
But using above code throws NullPointerException in Java. Is there something else which needs to be included?

Sorry but unfortunatelly I cannot debug your test code for you. If there are problems with Cluecumber itself I am more than happy to help. In your case though, it behaves as expected.


"page not found" when the matching route is not under the first matching parent

With the routes config below Vaadin Router should render <x-layout-b><x-b></x-b></x-layout-b> for the /b pathname. However, currently it throws Error: [Vaadin.Router] Page not found (/b).
// describe('parent layouts rendering', () => {
it('should render the matching child route even if it is not under the first matching parent', async() => {
  router.setRoutes([
    {
      path: '/',
      component: 'x-layout-a',
      children: [
        { path: '/a', component: 'x-a' },
      ]
    },
    {
      path: '/',
      component: 'x-layout-b',
      children: [
        { path: '/b', component: 'x-b', }
      ]
    },
  ]);

  await router.render('/b');

  verifyActiveRoutes(router, ['/', '/b']);
  checkOutlet(['x-layout-b', 'x-b']);
});

Workaround: list all child routes from all matching parents under one parent and use a custom route action to determine which parent component to render based on a given context:
router.setRoutes([
  {
    path: '/',
    action: (context, commands) => {
      return shouldRenderLayoutBForTheContext(context)
        ? commands.component('x-layout-b')
        : commands.component('x-layout-a');
    },
    children: [
      { path: '/a', component: 'x-a' },
      { path: '/b', component: 'x-b' },
    ]
  }
]);

The workaround for this also prevents using named parameters in the children routes of "/". I've been working on ripping out our existing routing and plugging this into our app in a rather large and invasive PR, and wasn't having any troubles, but then ran into the lack of parameterized routes. This is a priority issue for our adoption or not of @vaadin/router over the longer term. I was wondering:

Is there a plan/eta on this getting fixed? -> will wait and work around for time being
Are you open to pull requests? -> this has something to do with resolve & matchRoute not traversing down the second branch of the test case (I'm not sure exactly how this next & context work together)
No plan/no estimate -> we'll have to go find another router

Right here it will match correctly against /b child route, then parent will override matches.value.route and set it back to an /a-related route object


[BugFix] fix null field change to string error

Fixes #34396
What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.2
[x] 3.1
[x] 3.0
[x] 2.5

Now starrocks has a end-to-end test framework, so I suggest that you integrate the reproduce steps in this test suits.

@imay I had add some be uts for this fix. Now it's ready to review.

@SaintBacchus
When you select a branch to cherry-pick, if 2.5 is selected, all newer versions need to be selected too. Otherwise, users will encounter the same bug after upgrading to a new version.


The initialization experience

Adds a web server with a form to set the settings

currently 1.7% flash, neglegable ram

Happy to merge as MVP for #8


Resolv.conf error

I tried installing this with a new arch Linux iso USB but encountered the following error:
Loading AppArmor profile
Warning; unable to find a suitable fs in /proc/mounts. Is it mounted?
Use --subdomainfs to override
rm: cannot remove '/etc/resolv.conf' Device or resource busy
[./install.sh] Error on line 22: arch-chroot /mnt rm -rf /etc/resolv.conf
Running: mount while chrooted in gives the following entry:
run on /etc/resolv.conf type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
Unmounting and then running the relevant portions of the install script gave me a luks login then dropped me to a shell. No desktop environment.

Also when I attempt to install a desktop manager such as gnome using:
sudo pacman -Sy gdm gnome
Results in a dns lookup error. Putting the nameserver to <IP_ADDRESS> in /etc/resolv.conf allows me to ping google.com but doing:
`sudo pacman -Sy gdm gnomeresults in:
Running /use/bin/pacman through local proxy http://<IP_ADDRESS>:8080
And then basically errors relating to failed to retrieve files, 502 error.

Hi, thanks for your report.
FYI the script will create stdout.log and stderr.log, you might want to look into that to make sure everything went smoothly before you reach that error.

run on /etc/resolv.conf type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)

This is very weird, I really don't see how such a thing could happen.
This setup uses systemd-resolve for DNS, therefore /etc/resolv.conf must be a symlink to /usr/lib/systemd/resolv.conf. If you want to edit the default/fallback DNS configuration, you must look into rootfs/etc/systemd/resolved.conf.d/default.conf otherwise you can have a custom DNS configuration per interface using systemd-networkd, you will find its configuration in rootfs/etc/systemd/network.
You can check the current DNS configuration using resolvectl status, you should have something like this by default:
Global
           Protocols: -LLMNR -mDNS +DNSOverTLS DNSSEC=yes/supported
    resolv.conf mode: static
  Current DNS Server: <IP_ADDRESS>#dns.quad9.net
         DNS Servers: <IP_ADDRESS>#dns.quad9.net
Fallback DNS Servers: <IP_ADDRESS>#dns.quad9.net <IP_ADDRESS>#cloudflare-dns.com 2620:fe::9#dns.quad9.net 2606:4700:4700::1111#cloudflare-dns.com

Link 2 (eno1)
    Current Scopes: DNS
         Protocols: -DefaultRoute -LLMNR -mDNS DNSOverTLS=opportunistic DNSSEC=yes/supported
Current DNS Server: <IP_ADDRESS>
       DNS Servers: <IP_ADDRESS>
        DNS Domain: ~local

It sounds like you didn't use the script in the intended way and made some modifications to it. You might want to share it here so I can help you further because the error you're getting doesn't make sense to me. I went through the whole installation process 2 times during the past month everything worked as expected, so I'm pretty confident the install script works in its current state.

Running /usr/bin/pacman through local proxy http://<IP_ADDRESS>:8080

What is this IP address ? The proxy runs on <IP_ADDRESS>:8080.
I do not advise you to do this but if you want you can completely bypass the network restrictions by using sudo -g allow-internet

I was indeed able to reproduce the error, this is a very strange one. But anyway I believe I fixed it. You can try to pull the latest changes from master.

I was indeed able to reproduce the error, this is a very strange one. But anyway I believe I fixed it in 8452471. You can try to pull the latest changes from master.

Whilst this does now install without error I have tested this a few times now to make sure I am not going crazy.
With the above changes to install.sh upon rebooting and being promoted for the luks password, entering the correct password does not unlock the drive.
I have confirmed I am entering the correct password by rebooting into the arch Linux iso installer and using:
cryptsetup openLuks ...
To unlock the drive. As I say I tested this multiple times with simple lower case English characters, no special characters or numbers.

I was indeed able to reproduce the error, this is a very strange one. But anyway I believe I fixed it in 8452471. You can try to pull the latest changes from master.

Thank you, I can confirm that I am able to successfully boot into the sway window manager.
Can I suggest that as part of the install.sh script you prompt the user to input their local keyboard mapping and locale? It seems to cause issues for example when unlocking the luks container it can fail if there is a mismatch between keyboard layouts.
I'm not entirely new to Linux but I'm no expert. I came across your github in my search to improve my overall desktop Linux security. I've used Ubuntu and Arch Linux with other DWM such as Gnome before.
Upon unlocking the luks partition and being presented with the desktop environment I find myself unable to do anything, right clicking on the desktop has no effect as well as right clicking in the title bar.
I know this may sound stupid but I am learning, would it be possible for you to provide me some pointers on how I can go about configuring and using this installation to perform simple tasks? Such as opening a shell, Firefox/chrome or installing a new docker container to allow the use of say Discord? Since I see that you suggest not installing additional packages using pacman?
Appreciate the work you have done on this, I use Graphene OS on my Google pixel phone.

Can I suggest that as part of the install.sh script you prompt the user to input their local keyboard mapping and locale?

That is already something I thought about and it is definitely something I should do, haven't got time for it yet though.

Upon unlocking the luks partition and being presented with the desktop environment I find myself unable to do anything, right clicking on the desktop has no effect as well as right clicking in the title bar.

This is normal Sway behavior, you can find my Sway config in my dotfiles. You can open a terminal using SUPER+ENTER ("super" is the Windows key on your keyboard). If you are not familiar with Tiling Window Managers, I suggest you install KDE/Gnome or any other desktop environment that suits you best. Once you've choosen the desktop environment you want, you should update your ~/.profile to launch it. This is the line of the ~/.profile that launches your windows manager. Therefore you might want to change the XDG_CURRENT_DESKTOP variable accordingly.

 Such as opening a shell, Firefox/chrome

As I said earlier, SUPER+ENTER will spawn a terminal. SUPER+x will launch bemenu, in which you can type let's say "firefox" and hit enter, it will then spawn firefox.

Since I see that you suggest not installing additional packages using pacman

This is a reminder more than anything else, of course there will be some packages that you will have to install on your system, and if you want to be able to reproduce your setup at some point, you should update your own packages/regular to match the packages you installed.
My setup is not really meant to be used as is, because it is my own way of doing things, I have my own shortcuts, etc. Instead you should fork my repo and change the packages to install as well as the config files of my dotfiles repo, to suit your needs. And remove anything that you don't need/want.

I use Graphene OS on my Google pixel phone

So do I, but don't expect this Arch Linux setup to be as user friendly as Graphene can be.

I will now close this issue as the resolv.conf bug is now fixed (thanks again for your report). If you find anything else broken don't hesitate to open other issues.
If you need more assistance with your setup you can contact me at echo c2hlbGxjb2RlMzNAcHJvdG9uLm1lCg== | base64 -d


[bug] App window height keeps getting longer when dragging from one window to another.

Describe the bug
I use an external monitor with my laptop, and every time I drag the app from one screen to another, the window keeps on increasing in length.
Below is a video capture of  dragging the app across the screens a couple of times.
https://user-images.githubusercontent.com/47380919/236623700-4852c509-c011-4814-a169-4e107157de2e.mp4
Reproduction
No response
Expected behavior
No response
Platform and versions
[✔] Environment
    - OS: Windows 10.0.22621 X64
    ✔ WebView2: 112.0.1722.68
    ✔ MSVC: Visual Studio Community 2022
    ✔ rustc: 1.69.0 (84c898d65 2023-04-16)
    ✔ Cargo: 1.69.0 (6e9a83356 2023-04-12)
    ✔ rustup: 1.26.0 (5af9b9484 2023-04-05)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (environment override by RUSTUP_TOOLCHAIN)
    - node: 19.9.0
    - pnpm: 8.4.0
    - yarn: 1.22.19
    - npm: 9.4.0

[-] Packages
    - @tauri-apps/api [NPM]: not installed!
    - @tauri-apps/cli [NPM]: 1.3.0

Stack trace
No response
Additional context
No response

Met a similar bug:
Drag the window from a bottom-arranged builtin display to a top-arranged external display, it will appear an unexpected gap between the titlebar and the mouse.

Could you give more information about your app and system? do you have the decorations disabled? what is the resolution and scale of each screen?


Query: How would it integrate with other LLM apis.

Hello,
I am looking for PDF parser/extractor to read data for ready for LLM to give me values form it. Is it possible to do with this project ?
PDF -> nlm-ingestor -> PDF extracted o/p -> LLM
Thanks.

You can integrate with LLM by using the llmsherpa library --> https://github.com/nlmatics/llmsherpa
Run nlm-service as the server and then connect to it using llmsherpa LayoutPDFReader interface and you will get convenient chunks to use for LLM. Here's another example: https://github.com/nlmatics/nlm-ingestor/blob/main/notebooks/test_llmsherpa_api.ipynb


FC upload file metadata creation

this is not going to help any customer in any SU other than SU0.


Link in README.md content missing

If you click on the link at the end of the readme to get to the comprehensive  ciao cluster setup document the content is missing

@norbertfuhs Yes you're quite correct and we already have a bug for this #1335.  We're currently in the process of changing our cluster deployment scripts and so the missing documents linked to by the README.md file are hopelessly out of date.  The best way to try ciao out at the moment is to use the ciao development environment.  It's easy to set up on linux and the docs should be up to date.
https://github.com/01org/ciao/blob/master/DeveloperQuickStart.md