Add support for "endpoint --patch-db-metadata"

Description
If a db-metadata file is supplied it seems that ontop uses it as its only source of information.
This feature request is about adding something like a --path-db-metadata option such that ontop uses its default metadata extraction as a default unless overridden by the "patch" metadata. This would make it more easy to e.g. externally declare unique constraints for e.g. database views. Right now one has to manually extract and patch the metadata (which may fail #570).
Also, for completeness, the current approach results in a null pointer exception (NPE) if metadata is missing in the file specified for --db-metadata:
Steps to Reproduce

Create a database with a simple table:

CREATE TABLE "mytable"("id" int not null);  -- Note: Not declared as unique
INSERT INTO "mytable" VALUES (1);

Create the file mapping.r2rml.ttl

@prefix rr: <http://www.w3.org/ns/r2rml#> .
@prefix eg: <http://www.example.org/> .

[ a rr:TriplesMap ;
  rr:logicalTable        [ rr:tableName "\"mytable\"" ] ;
  rr:subjectMap          [ rr:template  "https://www.example.org/{id}" ] ;
  rr:predicateObjectMap  [ rr:predicate eg:value ; rr:objectMap [ rr:column "\"id\"" ] ] ;
] .

Create an empty database metadata file empty.json:

{}

Works: ./ontop endpoint -p mydb.local.ontop.properties -m mapping.r2rml.ttl

Fails with NPE: /ontop endpoint -p mydb.local.ontop.properties -m mapping.r2rml.ttl --db-metadata empty.json

Caused by: java.lang.NullPointerException
	at it.unibz.inf.ontop.dbschema.impl.JsonSerializedMetadataProvider.<init>(JsonSerializedMetadataProvider.java:51)
	at it.unibz.inf.ontop.dbschema.impl.JsonSerializedMetadataProvider.<init>(JsonSerializedMetadataProvider.java:42)
	at it.unibz.inf.ontop.dbschema.impl.JsonSerializedMetadataProvider$$FastClassByGuice$$54679058.GUICE$TRAMPOLINE(<generated>)
	at it.unibz.inf.ontop.dbschema.impl.JsonSerializedMetadataProvider$$FastClassByGuice$$54679058.apply(<generated>)

Desired: /ontop endpoint -p mydb.local.ontop.properties -m mapping.r2rml.ttl --patch-db-metadata override.json
Apply specified overrides whenever applicable with e.g. override.json declaring the id column as unqiue:

{
  "relations": [{
    "uniqueConstraints" : [ {
      "determinants" : [ "\"id\"" ]
    }],
    "name" : [ "\"mytable\"" ]
  }]
}

(Obviously this makes more sense if "mytable"; I hope the example is sufficiently clear).
Attached material
Versions
Ontop CLI 4.2.1, Postgres Ubuntu 14.6-1.pgdg22.04+1
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

Thanks @Aklakan for sharing your idea.
Since 4.2.1, we started to support incomplete JSON metadata file when the option ontop.allowRetrievingBlackBoxViewMetadataFromDB is enabled.
I guess the NPE in your case comes from the fact that the JSON document is an empty JSON object. We need to throw a better exception in that case.
Currently we have 2 alternatives for adding unique constraints:

Create an lens (initially called an "Ontop view"): https://ontop-vkg.org/guide/advanced/views
Provide a "constraint file" (legacy mechanism) like here

The patching is another alternative, I don't how maintainable it could be.
By patching, do you mean overriding the full definition of a relation or specifying the unique constraint to add (incremental update)? If it is the first case, it should a priori already work with the option mentioned above turned on.
Best,
Benjamin


Fix typo in README.md

Found two small typos in README.md

@brettcannon just remembered that we need to wait for an issue before we accept PRs. Will do that next time.


Table showing in the role page but not there in the database

Laravel: v5.6
Voyager: v1.1.3
PHP: 7.1.7
Database: MySQL 5.7.19)

Description
Hello,
I am having an issue regarding the role page /admin/roles/2/edit. I have a table showing there which has been already deleted(via voyager), I cannot get rid of it. I have checked mysql and the table is not there.
Could you kindly please tell me where are these tables in the UI being pulled from so perhaps I can manually fix the issue by deleting the entry causing the issue.
Here is what I see via this url: /admin/roles/2/edit
https://www.screencast.com/t/GycMxB0vI
In my db I have only the "businesses" table as shown here:
https://www.screencast.com/t/XPbj4JCRF
I would also like to point out that if I do not tick all the boxes from both tables, when I access the page:
/admin/businesses/create
I get this error:
Symfony \ Component \ HttpKernel \ Exception \ AccessDeniedHttpException
This action is unauthorized.
It looks like the scripts is reading the old settings for the roles but the new ones for the route, weird...I am confused.
I have been searching for hours, I cannot get it, where is your script registering this table from as the !menu_items" table only shows this route "voyager.businesses.index" for the table businesses, no other.
Thank you in advance,

Ok you can close the issue.
I fixed it by removing the "business" records in the data_rows and data_types tables. Refresh the admin panel and the problematic table went away.
One thing that was weird is that my businesses table has not reset all its field to INT.

closed

closed


Can't use dockerfile to custom env when there's no default image provided by cross

Describe your issue
I use cross to build for Tier3 target csky-unknown-linux-gnuabiv2hf and I write a Dockerfile.
I add the following to Cross.toml
[target.csky-unknown-linux-gnuabiv2hf]
dockerfile = "./path/to/docker/dockerfile"

However, when I run cross, it sait that
`cross` does not provide a Docker image for target csky-unknown-linux-gnuabiv2hf, specify a custom image in `Cross.toml`.

If I use the image in Cross.toml, I can run it successfully.
[target.csky-unknown-linux-gnuabiv2hf]
image = "csky"

Therefore, I want to know if it is desifned like this or it's a bug.
Which operating system is the host (e.g computer cross is on) running?

Linux / BSD

What architecture is the host?

x86_64

What container engine is cross using?

docker

cross version
cross 0.2.5

Hi! This was fixed recently with https://github.com/cross-rs/cross/pull/1340
You can also just specify a dummy image, it won't use it unless you use it in the dockerfile
So either use cross which includes #1340 cargo install cross --git https://github.com/cross-rs/cross or specify
[target.csky-unknown-linux-gnuabiv2hf]
image = "csky-cross"
dockerfile = "./path/to/docker/dockerfile"


Support JS/TS file format

WIP - do not merge yet.
This is to support JS file format. For example,
export default {
  // Comment 1
  "be.cancel": "Cancel",
  // Comment 2
  "be.cancelUploads": "Cancel Uploads",
. . .
}

@aurambaj Yes, string id and value are in " and in one line.


xwayland: remove remaining SOCK_CLOEXEC

FreeBSD build failed here

Okay, we were using non-POSIX address families. Fixed.

Thanks!


fix: scan entries when the root is in node_modules

Description
Fixed optimizer entries in the case the root is in node_modules
Additional context
https://github.com/vitejs/vite/discussions/15613#discussioncomment-8277522

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines, especially the Pull Request Guidelines.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Update the corresponding documentation if needed.
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

I think we could merge this PR. We should do the same for **/${config.build.outDir}/**, in that case, so we also avoid potential problems if outDir is part of the parent too. And the same for **/__tests__/** and **/__coverage__/** just to be consistent.
I'd like to see what other maintainers think about this too. Because even if your reproduction is working after this change, it may later fail unexpectedly because as I commented here, our current isInNodeModules util does a simple .includes('node_modules'). So it may not make sense to merge this PR until we have proper tests for an app inside node_modules and this util has been reworked.
There is also a higher level discussion about the extra complexity we are introducing to support apps inside node_modules. I understand that configuring this in Bit isn't possible though so if the code changes aren't hard to maintain I'm leaning towards supporting this use case in core. I think you'll have a lot of issues in the ecosystem though, because there are a lot of plugins out there that have the same kind of checks to decide if something is a dependency file or not. It could be an uphill battle. So I would still recommend to check if there is any chance to configure Bit in a way were the Apps parent folder isn't node_modules.

@patak-dev thanks for the information. Ya, I agree in a larger picture there might be somewhere else I'm not familiar with having the similar potential ones.
On Bit's side, in short term, I'm afraid it's hard to change since the concept in Bit is that everything runs as a package, so inevitably the runtime happens in a node_modules directory. For other libs/plugins in the ecosystem, we also did some related work. By far, this issue is the last one. 😅
In the long-term, I'd like to bring this topic to the team. /cc @GiladShoham
Thanks.

@patak-dev I've updated the code to cover other ignored patterns in globEntries().
However, I met a CI error on Windows said ResourceUnavailable: D:\a\_temp\9a25bc22-181a-46f2-b736-ec7ee0a6aa41.ps1:3. I don't quite understand this error and it seems not related to what I've changed. Do you have any ideas on this? Neither not sure a re-run would help for which I don't have that permission.
🙏

Don't worry about Windows, it seems it is failing across the board. I think we could merge this one, but explicitly stating that what you are doing isn't supported. Let's wait for @bluwy that said wanted to take a look

Thanks so much both.
So I guess we can merge this without the Windows CI pass? 🤔
Let me know anything I can help further.

There is an issue with playwright across the board, I'll merge this one without that test. Thanks for the patience @Jinjiang!


any support for typescript types?

It seems like i can't access the subfields of feed.entity.
request(requestSettings, (error: any, response: { statusCode: number; }, body: any) => {
  if (!error && response.statusCode == 200) {
    var feed = GtfsRealtimeBindings.transit_realtime.FeedMessage.decode(body);
    feed.entity.forEach((entity: any) => {
      if (entity.TripUpdate) {
        console.log(entity.TripUpdate);
      }
    //   console.log(entity.trip_update);
    //   console.log(entity);

    });
  }
});

Apparently
if (entity.TripUpdate) never passes because entity is of type any, but it is of a specific realtime transit type, so i need to install it first.
wouldn't work either when i do
feed.entity.forEach((entity: { TripUpdate: any; }) => {
      if (entity.TripUpdate) {
        console.log(entity.TripUpdate);
      }

entity.TripUpdate is printed as undefined

@Joe-ChenZ I think you may be running into issues because of the case of entity.TripUpdate vs entity.tripUpdate (https://github.com/MobilityData/gtfs-realtime-bindings/blob/master/nodejs/gtfs-realtime.js#L589-L595)
I was able to pull from the (NY) MTA's API with the following:
const GtfsRealtimeBindings = require("gtfs-realtime-bindings");
const https = require("https");

https
  .get(
    "https://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct%2Fgtfs-ace",
    {
      headers: {
        "x-api-key": "<redacted>",
      },
    },
    (resp) => {
      const buffers = [];

      // A chunk of data has been received.
      resp.on("data", (chunk) => {
        buffers.push(chunk);
      });

      // The whole response has been received.
      resp.on("end", () => {
        const data = Buffer.concat(buffers);
        const feed =
          GtfsRealtimeBindings.transit_realtime.FeedMessage.decode(data);
        feed.entity.forEach(function (entity) {
          if (entity.tripUpdate) {
            console.log(JSON.stringify(entity.tripUpdate));
          }
        });
      });
    }
  )
  .on("error", (err) => {
    console.log("Error: " + err.message);
  });

also, it should be pretty straight-forward to add TS types. i can help to do that soon once i (hopefully) get my first improvements for the JS bindings merged (https://github.com/MobilityData/gtfs-realtime-bindings/pull/103)

I'm also interested in TS types and can also help

@gauthier-th nice! i already have a local branch which adds the TS types, so will probably put that up once #103 is merged (the approach is fairly trivial, just using pbts to generate a .d.ts file and then specifying that file as types in the package.json. if you have feedback on that approach, please let me know!
perhaps something helpful here might be to help write a test / example(s) using TS?

yep, i did the same on my side too.
sure! i could write this.

https://github.com/MobilityData/gtfs-realtime-bindings/pull/105 is up now! @gauthier-th feel free to either propose changes onto that PR (or you can put up your own PR of tests / example(s) after this one is merged)

I think we should already solve #104 and #105 before adding more documentation / examples for TS

@isabelle-dr once you publish the newest node package version to NPM, you should be able to close this issue!

@jameslinjl  Any idea when the latest package will be published to NPM?

@sambencivengo - that's in MobilityData folks' hands - poke @isabelle-dr :)

Hi @isabelle-dr ! Do you have any news on this?

@gauthier-th I'll check in with Isabelle in the new year. I would expect much motion here until the holidays are behind us, since most stuff in North America comes to a standstill between Christmas and New Years.

Any news here?

@gauthier-th yeah, i chatted with isabelle. she's on vacation and then heading to a transportation conference over the next couple weeks. once she's back, she said she'll get all this published

ETA 1/17

Ok, thanks!

@sambencivengo @gauthier-th NPM packages have been published! I have QA'ed 1.1.1 and it lgtm

@isabelle-dr If we don't hear any complaints over a couple days, then we can close out this issue

Awesome, thanks for making this happen!


Intrinsics do not change after RGB Calibration

Required Info

Camera Model
D400

Firmware Version
5.9.14

Operating System & Version
Win 10

Kernel Version (Linux Only)
NA

Platform
PC

SDK Version
{ legacy / 2.. }

Language
{C/C#/labview/nodejs/opencv/pcl/python/unity }

Segment
Robot

Issue Description
We are performing repeated calibration of a Real Sense D415 to check how camera intrinsics vary. Using a target and the supplied Calibration Tools, we found some variation in the Depth calibration parameters, but none in RGB. It seems that despite following the Calibration software's dedicated RGB calibration step, no change is made to the factory intrinsics.
Is this to be expected? How come?
Thanks,
Michael

[Realsense Customer Engineering Team Comment]
Hi @mso-michael,
Which calibration tool do you use? Dynamic calibration or OEM calibration? And, what's its version?

Hi Realsense,
We use the Dynamic Calibration software version <IP_ADDRESS>. We'd love to get an understanding of why RGB intrinsics are not updated, thanks for your help.
Michael

[Realsense Customer Engineering Team Comment]
Hi @mso-michael,
Did you use CustomRW tool to read the parameters? The dynamic calibration is used to optimize extrinsic parameters. Intrinsic parameters (ex: distortion, principal point, etc) are not dynamically calibrated. You can refer to the dynamic calibration user guide to get more detail.
Only OEM calibration for factory use can calibrate the intrinsic and extrinsic parameters both. You can also refer to our custom calibration white paper to have your own calibration.

Hi @RealSense-Customer-Engineering, sorry to butt in but is this OEM calibration tool available for general use? Or do you have to buy that $1500 chessboard to get it?

Hi @RealSense-Customer-Engineering,
We calibrate using the dynamic calibration and read the published camera parameters using rostopic. There is clearly variation of the intrinsic parameters for the depth cameras (IR) after each calibration. Not much, but the intrinsic focal length parameter changes by 0.1-0.5%. If the Dynamic Calibration tool never calibrates intrinsic parameters, why would we be seeing this variation on the depth cameras? The fact the RGB intrinsics stay constant would make sense given your reply, but then why would the depth intrinsics change?
Thanks for your help,
Michael

[Realsense Customer Engineering Team Comment]
Hi @mso-michael,
It's weird to have this result from rostopic. I will further check this. Thanks.
@jb455,
Yes, the chart you point is correct. The OEM calibration software is also available for NDA customers.

@RealSense-Customer-Engineering
Thanks, we are NDA. Is there someone specific we can contact about this or is it easier to go through our usual contacts?

[Realsense Customer Engineering Team Comment]
Hi @jb455,
Please go thru your usual contacts and file the ticket on the Zendesk. You will get the access of the OEM calibration software.

[Realsense Customer Engineering Team Comment]
Hi @mso-michael,
Please refer to #1526 to have more info. IR/depth image@640x480 is rectified, only Y16-format image is unrectified raw image.
That is the format @1920x1080/Y16 used for D415 dynamic calibration and you can see no change of intrinsic parameters showing in dynamic calibration tool.

[Realsense Customer Engineering Team Comment]
Hi mso-michael,
still need any support for this topic?

[Realsense Customer Engineering Team Comment]
Hi @mso-michael,
I will close this issue first. If any further question, you still can re-open or create another ticket.


Rate limit tracking while using threads

Hey! When using threads to make multiple calls to riot api (to speed up timeline fetching), does the built in rate limit monitor supports the use of threads\async? or I risk the chance of calling the api above my limit. With a production key I heard it could cause a ban from riot, so want to be extra careful

It should work fine with multiple threads


feat: support optional fields

@khadgarmage Are you still working on that one ? Can we help you on managing this ?


fork genjavadoc temporarily

fixes #534

test run https://scala-ci.typesafe.com/view/scala-2.13.x/job/scala-2.13.x-integrate-community-build/382/consoleFull


Add gomegacheck linter

How to categorize this PR?

/area dev-productivity testing
/kind enhancement
What this PR does / why we need it:
Add a new linter called gomegacheck, that verifies that

developers don't forget to call Should or similar on Expect, Eventually and friends
only a single matcher is passed to Should and similar

Which issue(s) this PR fixes:
Part of https://github.com/gardener/gardener/issues/6016
Follow-up after https://github.com/gardener/gardener/pull/6245 and https://github.com/onsi/gomega/issues/561
Special notes for your reviewer:
Release note:

A new `gomegacheck` linter is now executed on `make check`. Find out more in the [docs](https://github.com/gardener/gardener/blob/master/hack/tools/gomegacheck/README.md).

/approve

/test pull-gardener-integration


Themes are missing

When Compiled Theme Data is missing

That's not the issue here, you're prolly misreading the errors. Switch flutter channel to master and then update, by running:
flutter channel master
flutter update
Try to compile it with the master version and see if it still complains


Create stub for Donald J. Trump

Currently, we don't have any voting data for President Trump, because we rely on CQ or whomever to provide it. That's fine, but I think we should make a stub so that if anyone searches they find him. I wrote a bio and got his presidential portrait of choice, so it's just a matter of adding the stub. (ICPSR 99912)
This should be done either in a reusable query or in code so that it can be baked into the ingestion process.

Sounds good. If you post it here and tag me ill put it into the ingestion.
On Jan 29, 2017 8:00 PM, "Aaron Rudkin"<EMAIL_ADDRESS>wrote:

Currently, we don't have any voting data for President Trump, because we
rely on CQ or whomever to provide it. That's fine, but I think we should
make a stub so that if anyone searches they find him. I wrote a bio and got
his presidential portrait of choice, so it's just a matter of adding the
stub. (ICPSR 99912)
This should be done either in a reusable query or in code so that it can
be baked into the ingestion process.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/JeffreyBLewis/WebVoteView/issues/159, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AS6Qi2BEiUykvZ4sv5Bx88uXu7-Xay5zks5rXWBBgaJpZM4LxB02
.

I'm not sure how you do the ICPSR generation and the initial onboarding of a member. His bio is in the president bio import that's already in ingestion and his photo is in the folder--so from that point of view it's done.
It's something like this (filling out all the rest should be later in the ingestion step)
db.voteview_members.insert({"icpsr": 99912, "id": "MP11599912", "congress": 115, "district_code": 0, "name": "TRUMP", "chamber": "President", "party_code": 200, "fname": "TRUMP, DONALD", "bioname": "TRUMP, Donald J.", "state_abbrev": "USA", "born": 1946, "died": null, "twitter": "POTUS", "last_means": 0, "occupancy": 0, "state_name": "PRESIDENT", "state_fips": "", "state_icpsr": 99, "vns_ID": ""})
But since I don't know how you actually allocate new ICPSRs I wouldn't want to do this and then have him get a separate ICPSR when we do get data.

@adamboche This should still happen, even if we don't have vote data.

@adamboche Not that this is the world's most important thing to do, but we should probably do this even if we no longer have a source to score the president. Is there a particular script I can insert the above query into to make this happen?

I think you can just do it raw. I don't remember if anything bad happens if we have members who never voted, but if it breaks we can just delete him and deal with it later.

This is done. The final query also has a stub biography written in Cong. Bioguide style (I also did these for the previous presidents who didn't serve in congress like GWB, Clinton, Reagan, etc.) -- there are few broken things on the bio page since he has no votes at all but I'll open a separate issue for that. This may take a little while to propagate to the main server.

Ah, yes, sorry about that!


ci: do not create issue of no vulnerabilties are found

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

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

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
1719

Relevant Lines:
3272

💛  - Coveralls


Dev

Codecov Report
Base: 98.81% // Head: 98.81% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (da787e9) compared to base (3dff808).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #18   +/-   ##
=======================================
  Coverage   98.81%   98.81%
=======================================
  Files           4        4
  Lines         506      507    +1
=======================================
+ Hits          500      501    +1
  Misses          6        6

Impacted Files
Coverage Δ

...tk_image_processing/_simpleitk_image_processing.py
98.60% <100.00%> (+<0.01%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Video controls always showing

If I put Video component in FlatList I see video controls.
Any params, like controls: false, fullscreen: false, can't be able to disable these controls.
iOS 13.1,
Lib version v5.0.2 (but it reproduced on old versions too)
Any thoughts?

Found a reason.
If I put something inside the Video component I'll see the controls.
This is my case with incorrect controls
<Video>
   <Text>FOO</Text>
</Video>

What need to change for correct controls work
<>
<Video />
<Text>FOO</Text>
</>

Seems this code is related:
https://github.com/react-native-community/react-native-video/blob/master/ios/Video/RCTVideo.m#L1438-L1441
Is assuming that every child view added is controls. I will have to take a look on that.
For now setting the childs as siblings as @igor-lemon suggests workarounds it


[Bug]: Optimization Suggestions and Summary for Improved Code Efficiency

Give a brief about the bug ✍
Enhancement
Variable Declarations

Encourages declaring variables locally within functions to improve readability and prevent potential conflicts.

Function Declarations

Advises converting function declarations to function expressions where applicable to better control scope and improve code organization.

Use const and let Instead of var

Recommends replacing the usage of var with const or let to enforce immutability and block scoping, which leads to fewer bugs and clearer code.

Caching DOM Elements

Suggests caching frequently accessed DOM elements to avoid redundant and potentially costly document.getElementById() calls, thereby enhancing performance.

Optimize Looping

Proposes refactoring loops to minimize iterations and enhance efficiency, leading to faster execution and reduced resource consumption.

Reduce DOM Manipulations

Advocates minimizing DOM manipulations by batching operations where possible to reduce rendering overhead and improve user experience.

Reduce Redundant Code

Highlights the importance of identifying and eliminating redundant code blocks or operations to streamline the codebase and enhance maintainability.

Event Listeners Optimization

Recommends consolidating event listeners and avoiding attaching multiple listeners for the same event on the same element to improve code clarity and performance.

Optimize CSS Manipulations

Suggests adding or removing CSS classes instead of directly manipulating inline styles to separate concerns and enhance code readability.

Minimize Memory Usage

Encourages releasing resources promptly when they are no longer needed to prevent memory leaks and improve overall system performance.

Error Handling

Advises implementing robust error handling mechanisms to gracefully handle unexpected situations, ensuring the stability and reliability of the application.

What is the expected behavior? 🤔
Here's a high-level summary of the optimizations:

Encapsulate variables within functions.
Use const and let instead of var.
Cache frequently accessed DOM elements.
Optimize loops and minimize iterations.
Batch DOM manipulations.
Eliminate redundant code blocks.
Consolidate event listeners.
Optimize CSS manipulations.
Minimize memory usage.
Implement error handling.

Provide step by step information reproduce the bug 📄
Solution Steps
game.js on GitHub
Encapsulate variables within functions

Review the codebase and identify global variables that can be encapsulated within functions to limit their scope and reduce the risk of unintended side effects.

Use const and let instead of var

Update variable declarations throughout the codebase, replacing var with const for constants and let for mutable variables where appropriate.

Cache frequently accessed DOM elements

Identify elements that are frequently accessed within loops or event handlers and cache them using variables to minimize DOM traversal overhead.

Optimize loops and minimize iterations

Review loops within the codebase and refactor them to minimize unnecessary iterations and improve algorithmic efficiency where possible.

Batch DOM manipulations

Analyze DOM manipulation operations and look for opportunities to batch multiple operations together, reducing the number of reflows and repaints.

Eliminate redundant code blocks

Conduct a thorough code review to identify and remove redundant code blocks or operations, simplifying the codebase and improving maintainability.

Consolidate event listeners

Consolidate event listeners for the same event type on the same element to improve performance and simplify event handling logic.

Optimize CSS manipulations

Refactor code that directly manipulates inline styles to utilize CSS classes instead, promoting separation of concerns and improving code readability.

Minimize memory usage

Implement mechanisms to release resources promptly when they are no longer needed, such as removing event listeners or deallocating objects.

Implement error handling

Identify potential error points within the codebase and implement appropriate error handling mechanisms, such as try-catch blocks, to gracefully handle exceptions and prevent application crashes.

Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

If you have any doubt you can directly send message on our discord (https://discord.gg/rZb46cCMmK), we have created seprate chennals for all projects...
Thank you :)


xRDSessionCollectionConfiguration does not support setting UserProfileDisk settings

The xRDSessionCollectionConfiguration resource should be able to configure UserProfileDisk related settings which are:
DiskPath
EnableUserProfileDisk
MaxUserProfileDiskSizeGB
IncludeFolderPath
ExcludeFolderPath
IncludeFilePath
ExcludeFilePath
Also, the resource should be able to disable the UserProfileDisk configuration if the configuration specifies so.
UserProfileDisks are a W2016+ feature only and that is probably why this resource does not support them yet. Also, on Set-RDSessionCollectionConfiguration, both enabling and disabling the User Profile Disk configuration are different parameter sets, so just adding these as parameters won't work if we don't fix the resource.
Proposed solution:

Add this functionality to xRDSessionCollectionConfiguration
Detect on which OS we are running (remove parameters for UserProfileDisk configuration if we are running on 2012)
When running on 2016+ test and apply the UserProfileDisk settings

Version tested: <IP_ADDRESS>

Started working on this in #35


Cannot open include file: 'Microsoft.UI.Composition.h'

Describe the bug
When including the file 'microsoft.ui.composition.interop.h' it tries to include 'Microsoft.UI.Composition.h':
#include <Microsoft.ui.composition.h>
The file could not be found, and I also can't find it anywhere on my system. There's a winrt generated version, but I think that's not the right file, and using it generates a bunch of errors in the 'microsoft.ui.composition.interop.h'. Am I missing something?
For context, I'm trying to interop with native C++ API.
Steps to reproduce the bug

Create a project from "Blank App, Packaged (WinUI 3 in Desktop)".
Add '#include <microsoft.ui.composition.interop.h>' to pch.h.

Expected behavior
The solution builds without errors.
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.2.3: 1.2.230118.102
Windows version
Windows 11 (22H2): Build 22621
Additional context
No response

This is one of those situations where it is easy to grab the wrong header if you are not careful, and it isn't documented afaik.
But the header you want is winrt/microsoft.ui.composition.interop.h. This header is written to interop with C++/WinRT. This header is also not a generated one, it is in the Windows App SDK package.
The header you are trying to use is for the C ABI, these headers aren't included with the Windows App SDK package by default, but you can generate them using the abi.exe tool. This tool can be downloaded from Nuget. But these headers would expose the raw interfaces.
But anyway, with the C++/WinRT header, what errors are you getting? I just created a new WinUI 3 project, included the winrt version of this header and then built the project and it built successfully.

Thank you, that was very helpful and clarified things for me.
When talking about C++/WinRT header, I meant the "winrt/microsoft.ui.composition.h", not "winrt/microsoft.ui.composition.interop.h". Out of desparation I changed "microsoft.ui.composition.interop.h" file (C ABI, as you pointed out) to include "winrt/microsoft.ui.composition.h" and that, of course, gave me errors. So no bugs there.
As for my overall goal, I was trying to get a Direct2D device context from Win2d's CanvasDrawingSession. Following this example, I included "Microsoft.Graphics.Canvas.h", which is a header for the C ABI, as I now understand. It includes "microsoft.ui.composition.h", which was missing, and that led me to investigate "microsoft.ui.composition.native.h", which does the same. And then I wrote here.
So in the end, seems like I'll have to generate C ABI for Windows App SDK, so that Microsoft.Graphics.Canvas.h works correctly. Unless Direct2d has winrt headers and win2d exposes instances for them somehow.

The thing is, I do mean winrt/microsoft.ui.composition.interop.h.
As far as Win2D's headers are concerned, did you add the Microsoft.Graphics.Win2D NuGet package? This causes C++/WinRT to generate the winrt/Microsoft.Graphics.Canvas.h file.

Ah, I see what I missed there. I missed the fact that there was a single ICanvasDevice usage near the bottom.
You can get abi.exe from the Microsoft.Windows.AbiWinRT NuGet package.


Android Force close on AAB version after uploaded to Play Store

Describe the bug
I've tried to catch 'appIntegrity' event. And it's work well on my release apk version. But once i build it to aab version, it fails and make my app force close.
To Reproduce
Build apk with: ./gradlew assembleRelease
Build aab with: ./gradlew bundleRelease
Try install my apk version -> works well
Try to install my aab version by upload it to Play Store -> Force close
Expected behavior
App not force close
Screenshots
Please complete the following information:

Device: [e.g.OPPO F11, SAMSUNG S21 FE]
OS version: [Android 13]
Version of freeRASP: [e.g. 3.1 or later]

Additional context

Hello @Mfdsix ,
could you mail us your watcherMail and package name of the application to<EMAIL_ADDRESS>along with the link to this issue? We will look at the logs to see if there is anything misconfigured. Thank you!
Kind regards,
Talsec team

We are unable to reproduce the issue with the details provided. Consequently, we will be closing this issue for now. If the problem reoccurs or you have additional information in the future, please feel free to reopen the issue or create a new one, and we will be happy to assist.
Kind regards,
Talsec team


Slack Intro page

Feature
Slack Introduction/Tutorial Page
Why is this feature being added?
Slack can be very confusing for new members, this will give them an idea of what they are getting into and how slack works.

What should your feature do?
Have screenshots of slack, explain that there are 200 channels, probably explain how to leave and join channels. Encourage people to introduce themselves.

sooo per @AshTemp slack intro is probably #1 with the map #2 events and successes at #3 and scholarships. She doesn't have an opinion right now where this goes shoot her ideas

Hi @AshTemp, I'm new to open source and would like to work on this. I think the slack intro can get added to the profile.

@marieram I'm not sure what you mean by the profile. The idea here is to create a page on the site that gives folks an intro into what slack is and how we use it to leverage our community. We're still working on designing this page so maybe I'm not quite understanding what you have in mind?

@AshTemp I was suggesting where it can go based on the comment before. Sorry, I'm new to this.

Don't apologize for trying to learn :) I think I sent you a message on the actual slack.

Self-assigning as a placeholder for @marieram

@AshTemp Hey, I'm not fluent in JS and might have been way over my head. I'd like to give this opportunity to someone else.  I'll be back to contribute in the future.

I can give this a shot. It will take a bit as I don't have any experience with React. However, it looks like this is a great opportunity to start getting familiar with it!

@AshTemp For placement in the webpage, I was thinking in the profile section next to the Slack link as @marieram suggested. However, the icons in that page are currently nice and even and adding another link would knock that out of balance. One thing we could do is add another row and have one icon at the bottom in the middle. So, it would look like

Then, the link to slack and the help page would be next to each other. This would be the most simple.
Another idea would be to keep the 3 rows as is currently implemented and have a small modal appear once the user clicks or mouses over it. This modal would have links to slack page and the help page. I think this would look neat but would also hamper the UX a bit because the links are hidden and it adds more work for the user to get to the slack page whether they need the help page or not.
Finally, I think another good spot for the link would be in the FAQ. That would just be another  block with a question and answer about how to get help with Slack. This would feature a link to this slack intro page.
Thoughts? I went ahead and cloned the repo and have a draft page implemented. I still need to add images and get it tied into the overall site as discussed above.

@keg63490 I'd prefer to not show modals when hovering over something, as this is not something that is easily implemented on a mobile/touchscreen.  IMO, just adding another icon is fine - that keeps it simple and intuitive, and doesn't require multiple clicks.  It's also consistent with the pattern we've established to get to some of the other pages (clicking on an icon).

@jjhampton Sounds good. I agree and will press forward with that.

Ok, so I think y'all  missed the part where there is no design for this page yet. This issue is for the standalone page for the community.

I'd be happy to work on this page!

Hi @lianthompson currently the issue is taken by @keg63490. There is a possibly that they would like to work alongside you. Please join our #oc-projects channel in our slack if you want to discuss further.

@keg63490 How are you progressing on this, any blockers we can help with?

@kylemh @jjhampton @AshTemp I disagree with the premise of this issue. I think this can be handled with the user sign up. I am open to arguments, but I think if we fix the sign-up this becomes a non-issue. Also, I think it is strange to have a page specifically for slack on-boarding. If we communicate better who we are in our main page this issue becomes obsolete.

This is an old issue and was one of David Molina's ideas on how to sort of
get the right message out to the right people. I agree that if we fix
signup flow this could be a non-issue.
On Sun, Jul 22, 2018 at 3:57 PM David Marchante<EMAIL_ADDRESS>wrote:

@kylemh https://github.com/kylemh @jjhampton
https://github.com/jjhampton @AshTemp https://github.com/AshTemp I
disagree with the premise of this issue. I think this can be handled with
the user sign up. I am open to arguments, but I think if we fix the sign-up
this becomes a non-issue. Also, I think it is strange to have a page
specifically for slack on-boarding. If we communicate better who we are in
our main page this issue becomes obsolete.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/OperationCode/operationcode_frontend/issues/884#issuecomment-406892372,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AS35GNutBmdl5vznjPv-sBoQbp8v-PZLks5uJNlBgaJpZM4SXuTR
.

I concur.


a Simple bug

Make sure to provide the following informations and check:

[ ] Toro dependencies (Eg: com.github.eneim:Toro:develop-SNAPSHOT)

[ ] Android manifacture | product name | OS Version | rooted or clean (Eg: Sony | Z4 | 5.0 | clean)

Logcat (if it was a fatal issue)

Good morning.
Thank you for your great code.
I want to tell you one your spelling bug on your document.
I am sorry for my bad english.

@bingbing720 Ah, thanks for pointing it out. I'll take a look on it asap.

Fixed in 2.3.0


SignPostCheck Overhaul

Description:
This is a major overhaul of the SignPostCheck, to fix a few bugs and make an enhancements.
The major reason for the overhaul was to fix a bug where multiple edges would end up in the same flag, even though they were geographically separate (sometimes by over a kilometer). This occurred because these items were connected to the same motorway or trunk edge, but on different ends, and the edge was used as the starting object for the check. Now the starting object is the ramp edges themselves, so the starting object is always the only item that is flagged.
The second bug that was fixed was that this check assumed it was always working with one way roads. This meant that edges/ways would sometimes be flagged multiple times. The check now accounts for reverse edges and way sectioning.
The final bug fix was to look for destination relations, instead of just destination tags. This fixed a few false positive flags where items were flagged for not having destination tags.
The one enhancement was to add an optional part of the check for branching ramps. This is to catch where a ramp has a single entrance, but multiple exits. In these cases, when the ramp branches towards the different exits there usually should be destination tags. However, some locations may not use road signs for these instances. So, this feature is controlled by a configurable, and can be turned on or off as needed.
Potential Impact:
None
Unit Test Approach:
Updated the unit test configurations to match the new design of the check. Also updated existing unit tests, and created a new one to test the new branching logic.
Test Results:
Running currently, will update soon.

Hey Bentley, do you mind add images to help describe some of the complex cases you've fixed; for example, the branching ramps with multiple exists. I think that would make it a bit easier for folks to understand

Also, do you mind listing all the configuration changes you made, and why? Thanks!

Lets push this to osmlab and we can review there


Enforce all json tags to use came case. 🐫

Overview
This PR introduces a make check-json-tags command to enforce camelCase naming conventions for JSON tags in Go files. JSON tags are now checked automatically to ensure they follow camelCase, enhancing consistency and aligning with standard Go naming conventions for JSON serialization.
Summary of Changes

Added Makefile Target (check-json-tags):

This target searches through Go files in the codebase, excluding specific directories, to validate JSON tags.
Ensures JSON tags conform to camelCase format using a regular expression match.

Exclusion of Specific Paths:

The check ignores files in the ./vendor and an additional directory (./pkg/loracloud/*) to limit the scope to relevant project code.

GitHub Action Integration:

The check-json-tags target has been integrated into the CI pipeline using GitHub Actions.
Now, all pushes and pull requests trigger the camelCase check, ensuring consistent enforcement across the codebase.

JSON Tags Corrected
During this update, the following non-camelCase JSON tags were found and modified:

File: ./pkg/decoder/helpers/helpers_test.go

gps_lat ➔ gpsLat
gps_lon ➔ gpsLon
gps_alt ➔ gpsAlt

File: ./pkg/decoder/tagxl/v1/port151.go

Battery ➔ battery

File: ./pkg/decoder/tagsl/v1/port6.go

button_pressed  ➔ buttonPressed

File: ./pkg/decoder/tagsl/v1/port15.go

low_battery  ➔ lowBattery

File: ./pkg/decoder/nomadxs/v1/port15.go

low_battery  ➔ lowBattery

Affected Devices
The following devices are impacted by these JSON tag changes:

tag S

Port 6
Port 15

tag L

Port 6
Port 15

nomad XS

Port 15

tag XL

Port 151

These changes ensure consistent naming conventions across JSON tags for all affected devices, improving data structure uniformity.
Impact

Code Consistency: Ensures that all JSON tags in Go files adhere to a uniform camelCase format, making the codebase more consistent and readable.
Automation: The GitHub Action integration provides automated checks on each commit and PR, streamlining code review and enforcing standards without manual intervention.

Notes

Running make check-json-tags locally will display any non-compliant tags.
This PR resolves all initially identified non-camelCase JSON tags, as shown in the logs above, and ensures the entire codebase now complies.

@StefanSmile please check if this affects dashboard services.

ThingsBoard shouldn't be affected.


Roll Flutter Engine from 7665ae51846f to 4da15de6099c (9 revisions)

https://github.com/flutter/engine/compare/7665ae51846f...4da15de6099c
2022-11-26<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from lYAPXiPJ9RcPGLUqb... to E3Fd0hvwiXVfn7egS... (flutter/engine#37915)
2022-11-26<EMAIL_ADDRESS>Roll Dart SDK from ae4b643d2a4b to 4851720b30d2 (1 revision) (flutter/engine#37914)
2022-11-25<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from ejjE2o60iiA3_agab... to lYAPXiPJ9RcPGLUqb... (flutter/engine#37911)
2022-11-25<EMAIL_ADDRESS>Roll Dart SDK from eb65e5cd48e9 to ae4b643d2a4b (1 revision) (flutter/engine#37910)
2022-11-25<EMAIL_ADDRESS>Roll Dart SDK from ae7042bf53ff to eb65e5cd48e9 (1 revision) (flutter/engine#37909)
2022-11-25<EMAIL_ADDRESS>Roll Skia from a01af64f5cec to 2618d380def4 (4 revisions) (flutter/engine#37907)
2022-11-25<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from NvafPMjJLQ0fBSSAc... to ejjE2o60iiA3_agab... (flutter/engine#37906)
2022-11-25<EMAIL_ADDRESS>Roll Dart SDK from 962cd6e0d20a to ae7042bf53ff (1 revision) (flutter/engine#37904)
2022-11-25<EMAIL_ADDRESS>Roll Dart SDK from eddf73d66119 to 962cd6e0d20a (1 revision) (flutter/engine#37900)
Also rolling transitive DEPS:
fuchsia/sdk/core/mac-amd64 from NvafPMjJLQ0f to E3Fd0hvwiXVf
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Is it possible to use RCL with MVC with dotnet watch run with recompiling changed templates?

Hey,
I tried to separate templates from .net core MVC app, but I could not get working updating page after change of templates. It served files, which were compiled at the moment of initial run.
Is it supported or will be?

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

ID: 9fd019c7-ceb7-6ef3-26ba-6b44341b6fc5
Version Independent ID: fd116d00-0dc7-efaf-c714-34d77b345a05
Content: Reusable Razor UI in class libraries with ASP.NET Core
Content Source: aspnetcore/razor-pages/ui-class.md
Product: aspnet-core
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

You need to make sure the new RCL build is loaded.

Well, yes, but I could not figure how. Can you point me?

@pranavkm I noticed when writing the article it was sometimes difficult for a project to load the updated RCL library. Can you suggest how to get this working with dotnet watch?

I also ran in this issue, any solutions to this?

See the discussion here - https://github.com/aspnet/Razor/issues/2426

Thanks for contacting us. We believe that the question you've raised have been answered. If you still feel a need to continue the discussion, feel free to reopen it and add your comments.


Add Localstack container support

This PR adds an equivalent to the testcontainers-java Localstack container.
This is simpler than the Java version because a simple edge port was introduced in version 0.11.0.
This should fix #33.

The comment were super useful, thanks @hermanschaaf !
Now let's wait for a maintainer review (I think it's @tillahoffmann).

Anyone having the right on the repository willing to review this ?
AFAIK there is at least 1 company (mine) and @hermanschaaf that are interested in this :)

My company is interested also. We have a lot of small python apps that interact with aws environment. We are already using testcontainers for our db tests and it's great :)

Heya, my org would also love to use it, we are waiting for this merge to write e2e tests. Please do tell me if I can help anyway.


hitting enter key right after typing in the search term blocks results from showing up

This can be reproduced on the demo page (http://projects.sergiodinislopes.pt/flexdatalist/).  In the first demo box if you enter "as" you will see asia highlighted and search results, if you clear the search (or refresh) and enter "as" directly following by the enter key flexdatalist will not load, this can be replicated in any of the examples regardless of if there are relevant search results
If you pause a bit before pressing enter it will still load  you need to enter your search term and press enter very fast to replicate the issue

I have the same problem. Did you find any solution?

Some quick fix because previously posted script will prevent selection of item by enter:
keypressSearch: function (event) {
var key = _this.keyNum(event),
keyword = $alias.val(),
length = keyword.length,
options = _this.options.get();
            clearTimeout(_searchTimeout);
            if (!key || ((key !== 13 || (options.showResultsOnEnter && $('ul.flexdatalist-results').length === 0)) && (key < 37 || key > 40))) {
                _searchTimeout = setTimeout(function () {
                    if ((options.minLength === 0 && length > 0) || (options.minLength > 0 && length >= options.minLength)) {
                        _this.data.load(function (data) {
                            _this.search.get(keyword, data, function (matches) {
                                _this.results.show(matches);
                            });
                        });
                    }
                }, options.searchDelay);
            }
        },

@DarthSonic Thank you so much!


ModuleNotFoundError: No module named 'Crypto'

Error while import AES module:
from Crypto.Cipher import AES
ModuleNotFoundError: No module named 'Crypto'

As mentioned in issue #7, some might face issue while import AES module. This is due to clash between pycrypto and pycryptodome modules. This can be fixed by using pycryptodomex module


How to extract model name from Azure deployment name ?

Describe the feature or improvement you're requesting
I'm using Azure OpenAI and I have more than one deployed model of the same type. I'd like to know how can I map a deployed model's name to the corresponding model's name, e.g. 'TestDavinci' ->'text-davinci-003'
Additional context
No response

Hi @mspronesti, the mapping from model name to deployment name can be found in the Azure OpenAI studio. Is your feature request to be able to do this programmatically? The Deployment.list() API can be called to retrieve some of this information. For example,
import openai

openai.api_type = "azure"
openai.api_base = "https://<your-resource>.openai.azure.com/"
openai.api_key = "<your-key>"
openai.api_version = "2023-03-15-preview"

deployments = openai.Deployment.list()
print(deployments)

This returns a response where id is your deployment name and model is the model name.
{
  "data": [
    {
      "created_at":<PHONE_NUMBER>,
      "id": "text-embedding-ada-002-2",
      "model": "text-embedding-ada-002",
      "object": "deployment",
      "owner": "organization-owner"
    }
  ],
  "object": "list"
}

Can you clarify if you're looking for more information than what's in the above response?

Hello @kristapratico, the Deployment.list() API is what I was looking for, thanks!
I'm closing this issue then.
I recommend opening the discussion session for this repository to allow people pose questions, as "bug report" and "feature request" are very much restrictive categories :)

Glad to hear that works for you.

I recommend opening the discussion session for this repository to allow people pose questions, as "bug report" and "feature request" are very much restrictive categories :)

^FYI @hallacy for repo feedback

Thanks @kristapratico , for your response. My end goal is to fetch the deployments name form Azure openai. I used the below script:
`import openai
openai.api_type = "azure"
openai.api_base = "https://.openai.azure.com/"
openai.api_key = ""
openai.api_version = "2023-03-15-preview"
deployments = openai.Deployment.list()
print(deployments)`
But getting :
{
"error": {
"code": "404",
"message": "Resource not found"
}
}
Even though deployments exists.

@mspronesti I'm not able to reproduce the error. Can you confirm that you are using the full endpoint to your resource on this line?

"https://.openai.azure.com/"

I'm not sure if you just redacted the resource name for privacy. I'd expect it to look something like ""https://{my-resource}.openai.azure.com/""

@mspronesti I'm not able to reproduce the error. Can you confirm that you are using the full endpoint to your resource on this line?

"https://.openai.azure.com/"

I'm not sure if you just redacted the resource name for privacy. I'd expect it to look something like ""https://{my-resource}.openai.azure.com/""

I  tried this end point also, but giving the same response @kristapratico .
{ "error": { "code": "404", "message": "Resource not found" } }

@Harish-Tricon the endpoint is specific to your Azure OpenAI resource. If you go to your Azure portal, and navigate to your Azure OpenAI resource, you can get the endpoint value by clicking "Keys and Endpoints" under the "Resource Management" section. It should look something like this (with the {my-resource} part substituted for your specific resource name): "https://{my-resource}.openai.azure.com/"

@kristapratico Hi, I see the /openai/deployments url is still working, but only with 2023-03-15-preview. This is almost the equivalent of OpenAI https://api.openai.com/v1/models API - it's 1 HTTP call to get the list of available models.
As my App (https://github.com/enricoros/big-agi) is in Typescript, and I'm adding Azure integration, this method works for me, and does not require python or larger libraries. Is this going to stay around?

@kristapratico Hi, I see the /openai/deployments url is still working, but only with 2023-03-15-preview. This is almost the equivalent of OpenAI https://api.openai.com/v1/models API - it's 1 HTTP call to get the list of available models.
As my App (https://github.com/enricoros/big-agi) is in Typescript, and I'm adding Azure OpenAI integration, this method works for me and does not require Python or more extensive libraries - which is great. Is this going to stay around?

@dereklegenzoff can you help answer this question?


hide cursor

I have searched and can't seem to find much beyond the 'hidden cursor when touchscreen present' PR. I'm using an rpi3 trying to create a view-only display (launching chromium with debug port allowing for remote control of the browser). In principle everything seems to be working correctly but I cannot figure out how to make the cursor disappear from dead center of the screen. I have no keyboard/mouse connected and would prefer to make the cursor disappear disappear initially and/or after a period of inactivity.
Is this possible currently?

I have a (admittedly janky) solution to hiding the cursor, which is just removing or hiding /usr/share/icons/*/cursors from cage (e.g. Set InaccesiblePaths=/usr/share/icons/ in the systemd service that executes cage).
Outside of that hack, or this patch, I don't believe cage provides a way to disable the cursor; trying some of the WLR_* env vars from this cursor-related patch didn't seem to work.

Thanks for the tip! I also noticed setting the XCURSOR_THEME seemed to have no effect as well.  I wanted to set it to this theme here: https://github.com/johnodon/Transparent_Cursor_Theme
I ultimately ended up replacing all the themes with the above mentioned to get it to work, but I like the inaccessible path approach better frankly. I'll try that and see if it takes effect.

InaccesiblePaths=/usr/share/icons/ didn't work for me :( let me know if you get that working properly and maybe send over an example.

Hmm, you're right. Ironically, I was assuming a cursor package I installed was what allowed me to see a cursor in cage, so you discovering that has made my life a little simple (thanks for that!), but yeah, I'll need to do some investigating into how I managed to break cursors in the first place

If I remember correctly, if no pointer input is available no cursor should be displayed by Cage. Could you check the inputs seen by the compositor?

How would I check the inputs? Sorry for the ignorance, don’t really know what I am doing as it relates to the compositor :(
Based on my ignorant reading of the relevant PR my understanding was that if a touch device is found it hides the cursor. Subtly different from no pointer devices found (which should be my case). But even if a pointer device is present I prefer to make it disappear after a certain inactivity timeout. When I was messing with sway it had setting of this nature (which incidentally didn’t work when set in the config file but did work if I sent a swaymsg).
Regarding the cursor env vars, those variables are actually explicitly called out in the docs as supported so we probably want to update the docs if indeed they are ignored.

From what I understand, they should already be supported, but only if you're using hardware cursors (although I've never figured out how to fix the warn: wayland.c:1512: no server-side cursors available, falling back to client-side cursors message, and WLR_NO_HARDWARE_CURSORS=0 doesn't change this)

Though to answer your question, run sudo libinput list-devices to check for pointer devices.

Maybe this is why it still shows up for me even if I don't have a keyboard/mouse plugged in?
libinput list-devices
Device:           vc4-hdmi
Kernel:           /dev/input/event0
Group:            1
Seat:             seat0, default
Capabilities:     keyboard pointer
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   *button
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   flat *adaptive custom
Rotation:         n/a

Seems odd an hdmi device is a keyboard and a pointer but I suppose it's something to do with cec?

This pointer device should be exactly why a cursor is displayed: here in the code. HDMI-CEC seems to be a good explanation.
Maybe you can disable it at udev / libinput layer as there is no option (yet?) to disable cursor in Cage.

Thanks for looking that up! I think the transparent cursor is the better option in my case as someone may have a mouse plugged in etc. That should work perfectly well until a proper inactivity or similar solution is available.
I think the current logic (as I understand it) is sound:

if any touch devices present hide the cursor
If 0 pointer devices present hide the cursor

additionally the 3rd bit would be:

if pointer is visible (no touch devices present) then hide after x period of inactivity.

As an interim solution, maybe it would be possible currently to default the position to the upper left corner or something instead of sitting dead center of the content area. Would at least make it a little less noticeable.

Current logic is quite "simple". If any input device has pointer capability, show the cursor. If not, do not show any cursor. This is how I understand it.
Tranparent cursor or removing images loaded by Xcursor should do the trick for your case.

Yeah, would be good to understand why the env vars don't seem to be working. For example setting the cursor path to /dev/null would be cleaner than replacing all cursors...or even setting the theme properly would be great as well. Perhaps I have something messed up on my end preventing those from working as desired?

Here are two possible solutions with udev:

To ignore an input device: https://wayland.freedesktop.org/libinput/doc/latest/ignoring-devices.html#ignoring-devices
To only enable the keyboard capability on a specific device (and disable all other capabilities including pointer): https://wayland.freedesktop.org/libinput/doc/latest/device-configuration-via-udev.html#udev-device-type

Cage handles the cursor differently than Weston. When I start the same electron application with cage as compositor, there is a cursor in the center of the screen (although only a touch screen is connected, no mouse). When I start the application with weston as compositor, the cursor is NOT displayed. So it would be nice if cage could use the same logic for displaying the cursor as weston does.

Coming from the future, I also want to disable the cursor only when running cage (or at least hide it visually or not have it right in the middle of the screen). I'm doing "things that doesn't make sane sense to do other than it looks neat" and that's running tuigreet with alacritty within cage as part of the whole greeter. It works surprisingly well.
Using the suggestion from @travisghansen for setting a transparent cursor theme didn't work, and the way I did it was modifying the systemd unit for greetd (which will be running cage) with a XCURSOR_PATH pointing to the desired cursor. And being on NixOS, this was generated during nixos-rebuild so there is a little bit of indirection. I can tell cage is reading XCURSOR_PATH because previously I didn't specify the path correctly and resulted in cage failing to start.
Relevant nix:
{ config, pkgs, ... }:

let
  transparent-cursor = pkgs.fetchFromGitHub {
    owner = "johnodon";
    repo = "Transparent_Cursor_Theme";
    rev = "22cf8e6b6ccbd93a7f0ff36d98a5b454f18bed77";
    sha256 = "sha256-wf5wnSiJsDqcHznbg6rRCZEq/pUneRkqFIJ+mNWb4Go=";
  };
  cage = "${pkgs.cage}/bin/cage";
  tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet";
  alacritty = "${pkgs.alacritty}/bin/alacritty";
  greeting = "...";
in {
  # ...
  services.greetd = {
    enable = true;
    settings = {
      default_session = {
        command = "${cage} -- ${alacritty} --command ${tuigreet} --time --greeting \"${greeting}\"";
      };
    };
  };

  systemd.services.greetd.serviceConfig = {
    Environment = "XCURSOR_PATH=${transparent-cursor}/Transparent";
  };
}

Resulting greetd.service:
# /etc/systemd/system/greetd.service
[Unit]
After=systemd-user-sessions.service
<EMAIL_ADDRESS>After=plymouth-quit-wait.service
<EMAIL_ADDRESS>Wants=systemd-user-sessions.service

[Service]
Environment="LOCALE_ARCHIVE=/nix/store/wkb8skirx4zmrnsw6dcxz07p926kz32p-glibc-locales-2.39-52/lib/locale/locale-archive"
Environment="PATH=[…Lots of nix store paths…]"
Environment="TZDIR=/nix/store/fn1y6zydm7mgxrm7b08h1w1c9qkrzk8r-tzdata-2024a/share/zoneinfo"
X-RestartIfChanged=false
# ! This path is from the `fetchFromGitHub` as seen in the nix expression.
Environment=XCURSOR_PATH=/nix/store/6q45r4mg9xm1pf7wiiyb3dl0p1a53h5n-source/Transparent
ExecStart=/nix/store/6dr06lxs8x9cgs62h83ms48f1srahxjs-greetd-0.10.3/bin/greetd --config /nix/store/gcr1i2wrr3djlhar7q5jivi8isxm79ji-greetd.toml
IgnoreSIGPIPE=false
KeyringMode=shared
Restart=on-success
SendSIGHUP=true
TimeoutStopSec=30s
Type=idle

[Install]
WantedBy=graphical.target

I'm sharing this in case it helps anyone else who tries to hack the code to get rid of the cursor. I tried commenting out lines in seat.c to make it remove the cursor even if it detects a pointing device. I made this line run:
https://github.com/cage-kiosk/cage/blob/df508d65e7e7413ba986a0d63a1660deda7bbe4c/seat.c#L131
The cursor still showed up. I had to comment out this line get rid of it:
https://github.com/cage-kiosk/cage/blob/df508d65e7e7413ba986a0d63a1660deda7bbe4c/seat.c#L486C3-L486C25
Something is setting the cursor and that brings it back even if it was removed. I'm using cage to run Electron.

Is there really no way to auto-hide the cursor after it hasn't moved for a while? This seems pretty critical for a kiosk.

@traverseda
I am not aware of such a feature in Cage.
If you have a hand in the executed application, you may use the idle notifier protocol  to change the cursor when needed. I don't really know what it is possible to do but could be a nice test.

Clients cannot change the cursor if they don't have pointer focus. Maybe as a workaround it's possible to create a fullscreen transparent layer-shell surface after the idle timeout expires, and destroy it on activity.
Anyways, patches welcome if you want to implement this in cage.

Some efforts are currently made by @OctopusET on layer-shell protocol support, see issue #95 and PR #345.
@emersion, any reason the executed application in Cage will not have the pointer focus?

The application executed in cage will have pointer focus. However, I assumed the use-case here is to launch an off-the-shelf application such as a web browser and hide the cursor when inactive. It would be annoying to have a patch and compile Firefox just to be able to hide the cursor :P

Regular fullscreen applications can't be fully transparent (because of security concerns).

This really does just need to be a feature of Cage. This is a feature of KDE running under wayland, where it will hide the cursor is you touch the touch screen anywhere.

@emersion If I rebased the solution in #335, would it be accepted? It looks like a clean way to simply always disable cursor if desired. Or, do you want it to be done differently (perhaps not constructing the wlr_cursor in the first place)?

@BBaoVanC, what is your use-case? Why do you want to hide the cursor?

For what it's worth I also have a use-case where I never want the cursor to show up. In my scenario the devices are used for scoreboards and information boards during events and if a cursor shows up it looks silly. Arbitrarily hiding it is fine but for some reason I can't get the transparent cursors to work with nixos to having a flag/env var I can set would be great.

Do you have a pointer device plugged in? If you do, are you never using it, or only in some cases?

@BBaoVanC, what is your use-case? Why do you want to hide the cursor?

My use case is running on the Spotify Car Thing. It has a dial which acts as a pointer. If I'm understanding right (I don't have one yet physically), removing the pointer role from the dial via libinput/udev removes its ability to be used as a scroll wheel. But, it looks weird to have a cursor on the tiny little device because the touch screen is being used instead for actually moving and clicking things.

@emersion I don't have much control over that as I hand the device out to users (it's effectively an IoT-like device). One struggle with that logic however is sometimes (rpi) things show up as input that aren't actually input devices..or they are entirely unusable input devices in this context.

My use case is running on the Spotify Car Thing. It has a dial which acts as a pointer. If I'm understanding right (I don't have one yet physically), removing the pointer role from the dial via libinput/udev removes its ability to be used as a scroll wheel. But, it looks weird to have a cursor on the tiny little device because the touch screen is being used instead for actually moving and clicking things.

Usually, when there is a pointer input device, the position of the cursor is important, because what's under the cursor gets scrolled. For instance, if an app displays two lists, which one do you expect to scroll if the cursor is hidden?

I don't have much control over that as I hand the device out to users (it's effectively an IoT-like device).

Sounds like it would make more sense for you to set up an udev rule to disable all pointer devices, rather than hide the cursor.

I want input devices usable for debugging scenarios etc, I just don't want it visible on the cage terminal.

Usually, when there is a pointer input device, the position of the cursor is important, because what's under the cursor gets scrolled.

Alright apparently scrolling actually wasn't even working, and that might be the issue.
But, on the Car Thing, we do want to control what field is scrolled, instead of the user choosing (it wouldn't make any sense).
What's the best way to do that? Regardless, the cursor has to be hidden, though.

I want input devices usable for debugging scenarios etc, I just don't want it visible on the cage terminal.

In that case, sounds like you'd want to disable pointer devices specifically in case? But just hiding the cursor would be confusing, because cage would still process and relay pointer events.

on the Car Thing, we do want to control what field is scrolled

I don't know.

Yup, that sounds useful (and that behavior is implemented by Sway already).

The above mentioned behavior seems sane enough for me.


refactor: for each react bootstrap component, move "export * from './widget.gen'" to index.ts

@quentinderoubaix Thank you for reviewing and integrating my PR!


Compilation Error on Melodic

/home/xxxx/catkin_ws/src/hypharos_minicar/src/MPC.cpp:19:10: fatal error: cppad/cppad.hpp: No such file or directory
 #include <cppad/cppad.hpp>
          ^~~~~~~~~~~~~~~~~
compilation terminated.
hypharos_minicar/CMakeFiles/MPC_Node.dir/build.make:62: recipe for target 'hypharos_minicar/CMakeFiles/MPC_Node.dir/src/MPC.cpp.o' failed
make[2]: *** [hypharos_minicar/CMakeFiles/MPC_Node.dir/src/MPC.cpp.o] Error 1
CMakeFiles/Makefile2:3954: recipe for target 'hypharos_minicar/CMakeFiles/MPC_Node.dir/all' failed
make[1]: *** [hypharos_minicar/CMakeFiles/MPC_Node.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

Could this be solved?

Hi
I haven't looked any more at this, sorry.

Hi
This error is due to missing dependency of cppad lib in your system.
A simple
sudo apt install cppad
should do the trick

Hi
This error is due to missing dependency of cppad lib in your system.
A simple
sudo apt install cppad
should do the trick

the issue was not solved after using cppad install cmd


[SPARK-11962] Added getAsOpt functions to Row and tests for it.

getAsOpt[T] functions have been added to Row and GeneicRowWithSchema to get the values present in a row object optionally. Corresponding tests have also been added. Filed a pull request again after fixing style issues.
This is a new pull request created to replace #10028.

Can one of the admins verify this patch?

@jodersky: I incorporated your recommendations and also updated my branch with the current master. Can you or one of the admins please ask Jenkins to test this build. Thanks!

Great! Unfortunately I can't help with the tests though.
Check out this page to get a list of maintainers and their components. In this case I think @rxin and @marmbrus should be the ones to check your PR

@marmbrus I agree. I wasn't a fan of getAsOpt but couldn't think of a better name then. I've updated them all to getOption. So does this look better now?

I still don't think we should swallow class cast exceptions.  It means the person doesn't know the schema of their data (and they probably want to know they are wrong).  Similarly I'd throw UnsupportedOperationException as we do elsewhere when the schema is not available.

Isn't the whole point of Option to not throw exceptions? Actually it's to not return nulls I guess. But throwing an exception would defeat the purpose of returning an Option. If a person really wants that information, (s)he can still use the existing getAs methods.

I think the point of Option is typesafe null handling, not hiding structural problems with your code (i.e. using the wrong type for a column).  If this fails then you are going to get None always, not just for bad data (because the type of a column will always be the same.

What would you propose as a solution instead?

Don't catch the ClassCastException or throw UnsupportedOperationException when the schema is not present (which will happen if you use fieldIndexes anyway).  Just check out the structure of the other get by field name methods.

I believe this PR should be closed

Won't do.


python311Packages.pylitterbot: 2023.4.0 -> 2023.4.2

Diff: https://github.com/natekspencer/pylitterbot/compare/refs/tags/v2023.4.0...v2023.4.2
Changelog: https://github.com/natekspencer/pylitterbot/releases/tag/v2023.4.2
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 236808 run on x86_64-linux 1

5 packages failed to build:

home-assistant-component-tests.litterrobot
python310Packages.pylitterbot
python310Packages.pylitterbot.dist
python311Packages.pylitterbot
python311Packages.pylitterbot.dist


node and node2 should support evaluateName field

Currently VSCode uses this ugly heuristic to get the parent chain of a variable. We need to get rid of this heuristic since VSCode should be language agnostic and we already have a field in our protocol that represents this.
I suggest that node and node2 start supporting this. Once we have that we can notify other debug adapter writers about this field with the goal of droping this heuristic in April.
An example where this field is used: adding a variable from the variables view to a watch list or copying a variable value to the clipboard(we first evaluate it using the parent chain)

node2 has supported this for awhile. Nothing is new right?

Great Rob.
Yes, nothing is new. I was only pushing for getting rid of the ugly heurstic linked in the above comment.
@weinand can we simply drop the heuristic and state to debug adapters if they want to support add to watch and copy value actions they have to support evaluateName field?

@isidorn we should announce in the April release that we will drop the legacy code in May.

I have added it to the release notes to not forget about it later. Then I will remove the heuristic in May.

'legacy' does not yet support evaluateName.

duplicate of #14846


Enable CORS

Issue: #305

[X] Tick here to confirm that you have run RunCodeFormatter.ps1

Description:
Add settings for CORS to allow nether API to be configured so that it can be called from another origin in the browser
Test:
About to send a PR to the nether.samples repo that exercises this functionality

Hi @stuartleeks, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Stuart Leeks). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;


避免因cloudprovider disable导致账号同步失效

这个 PR 实现什么功能/修复什么问题:
避免因cloudprovider disable导致账号同步失效
是否需要 backport 到之前的 release 分支:

release/2.11
release/2.10.0
release/2.9.0
release/2.8.0

/area region
/cc @swordqiu @yousong

Codecov Report

Merging #1832 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #1832      +/-   ##
=========================================
- Coverage     7.6%    7.6%   -0.01%
=========================================
  Files         412     412
  Lines       63629   63630       +1
=========================================
  Hits         4841    4841
- Misses      58378   58379       +1
  Partials      410     410

Flag
Coverage Δ

#aFlag
7.6% <0%> (-0.01%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/compute/models/cloudaccounts.go
1% <0%> (-0.01%)
:arrow_down:

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 c149ea2...c2151bb. Read the comment docs.

/lgtm
/approve


Release v0.3.2

Issue #, if available:
Description of changes:

Release v0.3.2

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

🥂


“su: pam_start: System error”  “sudo: unable to initialize PAM: Operation not permitted“

New term started doing “session ended”  apple terminal works but when trying to login as root it give error: “sudo: unable to initialize PAM: Operation not permitted “ and “su: pam_start: System error”
i can’t figure it out  any help would be greatly appreciated
! ssh is not working either
4A5B0393-8A64-4E8C-BEBF-664AB90C5A73

This isn't really a issue with dopamine itself. Rather your profile is set for bash, most users would recommend you stick with zsh, theres some quirky stuff like that. : )
chsh -s $(which zsh)
If not found go into Procursus and install zsh.

thanks  i’m using zsh now  i got the session ended fixed but still can use su or sudo  same PAM error, idk what’s causing it

Seems like you broke permission of /var/jb/usr/bin;lib and ROOT_PATH_NS itself. I had that error. Maybe one of the tweaks breaks permissions and changes the owner of whole jb folder idk. Check permissions or just reinstall jb.


Set a timeout limit on SQL queries via the web-interface

We want to give users the freedom to write their own read-only querues but still protect the database from very slow queries that would hog database resources. We can do this by injecting a query timeout - but how?

From https://mysqlserverteam.com/server-side-select-statement-timeouts/ Looks like it works ... here is a query that takes 3 minutes, and here it is restricted to 5 seconds execution:
mysql> SELECT objectId FROM candidates WHERE objectId NOT IN (SELECT objectId FROM objects)  GROUP BY objectId HAVING count(*) > 2;
Empty set (2 min 30.19 sec)
mysql> SELECT /*+ MAX_EXECUTION_TIME(5000) / objectId FROM candidates WHERE objectId NOT IN (SELECT objectId FROM objects) GROUP BY objectId HAVING count() > 2;
ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded

Here is a 5 second timeout
mysql> SELECT /*+ MAX_EXECUTION_TIME(5000) / objectId FROM candidates WHERE objectId NOT IN (SELECT objectId FROM objects) GROUP BY objectId HAVING count() > 2;
ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded
mysql> SELECT objectId FROM candidates WHERE objectId NOT IN (SELECT objectId FROM objects)  GROUP BY objectId HAVING count(*) > 2;
Empty set (2 min 30.19 sec)


Avoid rename inputs

Codecov Report
Attention: Patch coverage is 75.00000% with 2 lines in your changes are missing coverage. Please review.

Project coverage is 74.95%. Comparing base (bf8ce12) to head (a21a515).

Files
Patch %
Lines

experimental_experiment/xbuilder/graph_builder.py
66.66%
2 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #93      +/-   ##
==========================================
- Coverage   74.97%   74.95%   -0.02%
==========================================
  Files          79       79
  Lines        8790     8793       +3
==========================================
+ Hits         6590     6591       +1
- Misses       2200     2202       +2

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


Add a lib manager system functionality

To vague. This should be a project in its own

To vague. This should be a project in its own


Update doc XML

Fixes warnings that appear in the generated ref doc build
Description

Disambiguate class reference.

Specific Changes

Update comments for LuisRecognizer.DefaultHttpClient.

Testing

Not sure how to test this. However, the change did not generate any new build warnings in VS, and the link in IntelliSense links to the correct class.

@chrimc62 I don't have any other doc XML fixes at this time, and this can be merged at your convenience.


Wait for GPU Operator Subscription, InstallPlan & Deployment

To avoid situation where gpu_deploy.sh waits for nvidia-gpu-operator pods,
before they were created by the Nvidia GPU Operator installation,
it is required to initially wait for the Operator Subscription, InstallPlan & Deployment to complete.

This has been tested both on Cluster without Nvidia operator, and also when the operator was already installed.
Output example:
18:18:41  Deploying Nvidia GPU Operator
[Pipeline] sh
18:18:42  + /home/jenkins/workspace/rhods/rhods-smoke/ods-ci/ods_ci/tasks/Resources/Provisioning/GPU/gpu_deploy.sh
18:18:32  Create and apply 'gpu_install.yaml' to install Nvidia GPU Operator
18:18:35  namespace/nvidia-gpu-operator created
18:18:37  operatorgroup.operators.coreos.com/nvidia-gpu-operator-group created
18:18:39  subscription.operators.coreos.com/gpu-operator-certified created
18:18:43  subscription.operators.coreos.com/nfd created
18:18:47  Wait for Nvidia GPU Operator Subscription, InstallPlan and Deployment to complete
18:18:50  subscription.operators.coreos.com/nfd condition met
18:18:53  installplan.operators.coreos.com/install-hhdnp condition met
18:18:56  installplan.operators.coreos.com/install-nz27b condition met
18:18:58  installplan.operators.coreos.com/install-ww6zm condition met
18:18:58  deployment "gpu-operator" successfully rolled out
18:18:58  Waiting until GPU pods of 'gpu-operator' in namespace 'nvidia-gpu-operator' are in running state...
18:18:59  pod/gpu-operator-c66699dfb-qlbrp condition met
18:19:02  nodefeaturediscovery.nfd.openshift.io/nfd-instance created
18:19:06  clusterpolicy.nvidia.com/gpu-cluster-policy configured
18:19:06  Waiting until GPU pods of 'nvidia-device-plugin-daemonset' in namespace 'nvidia-gpu-operator' are in running state...
18:19:06  pod/nvidia-device-plugin-daemonset-wtd7w condition met
18:19:06  Waiting until GPU pods of 'nvidia-container-toolkit-daemonset' in namespace 'nvidia-gpu-operator' are in running state...
18:19:07  pod/nvidia-container-toolkit-daemonset-wcq4p condition met
18:19:07  Waiting until GPU pods of 'nvidia-dcgm-exporter' in namespace 'nvidia-gpu-operator' are in running state...
18:19:07  pod/nvidia-dcgm-exporter-28p7p condition met
18:19:07  Waiting until GPU pods of 'gpu-feature-discovery' in namespace 'nvidia-gpu-operator' are in running state...
18:19:08  pod/gpu-feature-discovery-g92rj condition met
18:19:08  Waiting until GPU pods of 'nvidia-operator-validator' in namespace 'nvidia-gpu-operator' are in running state...
18:19:09  pod/nvidia-operator-validator-xqh95 condition met
18:19:09  Deleting configmap migration-gpu-status
18:19:09  configmap "migration-gpu-status" deleted
18:19:09  Rollout restart rhods-dashboard deployment
18:19:10  deployment.apps/rhods-dashboard restarted
18:19:10  Waiting for up to 3 minutes until rhods-dashboard deployment is rolled out
18:19:10  Waiting for deployment "rhods-dashboard" rollout to finish: 2 out of 5 new replicas have been updated...
18:19:10  Waiting for deployment "rhods-dashboard" rollout to finish: 2 out of 5 new replicas have been updated...
18:19:10  Waiting for deployment "rhods-dashboard" rollout to finish: 2 out of 5 new replicas have been updated...
18:19:10  Waiting for deployment "rhods-dashboard" rollout to finish: 3 out of 5 new replicas have been updated...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 3 out of 5 new replicas have been updated...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 3 out of 5 new replicas have been updated...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 3 out of 5 new replicas have been updated...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 4 out of 5 new replicas have been updated...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 4 out of 5 new replicas have been updated...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 2 old replicas are pending termination...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 2 old replicas are pending termination...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 2 old replicas are pending termination...
18:20:18  Waiting for deployment "rhods-dashboard" rollout to finish: 1 old replicas are pending termination...
18:20:44  Waiting for deployment "rhods-dashboard" rollout to finish: 1 old replicas are pending termination...
18:20:44  Waiting for deployment "rhods-dashboard" rollout to finish: 1 old replicas are pending termination...
18:20:44  Waiting for deployment "rhods-dashboard" rollout to finish: 4 of 5 updated replicas are available...
18:21:11  deployment "rhods-dashboard" successfully rolled out
18:21:11  Verifying that an AcceleratorProfiles resource was created in redhat-ods-applications
18:21:11  Name:         migrated-gpu
18:21:11  Namespace:    redhat-ods-applications
18:21:11  Labels:       <none>
18:21:11  Annotations:  <none>
18:21:11  API Version:  dashboard.opendatahub.io/v1
18:21:11  Kind:         AcceleratorProfile
18:21:11  Metadata:
18:21:11    Creation Timestamp:  2024-01-11T12:04:13Z
18:21:11    Generation:          1
18:21:11    Managed Fields:
18:21:11      API Version:  dashboard.opendatahub.io/v1
18:21:11      Fields Type:  FieldsV1
18:21:11      fieldsV1:
18:21:11        f:spec:
18:21:11          .:
18:21:11          f:displayName:
18:21:11          f:enabled:
18:21:11          f:identifier:
18:21:11          f:tolerations:
18:21:11      Manager:         unknown
18:21:11      Operation:       Update
18:21:11      Time:            2024-01-11T12:04:13Z
18:21:11    Resource Version:  296166
18:21:11    UID:               a0a2ff7c-efe4-4664-8d2b-b25051854493
18:21:11  Spec:
18:21:11    Display Name:  NVIDIA GPU
18:21:11    Enabled:       true
18:21:11    Identifier:    nvidia.com/gpu
18:21:11    Tolerations:
18:21:11      Effect:    NoSchedule
18:21:11      Key:       nvidia.com/gpu
18:21:11      Operator:  Exists
18:21:11  Events:        <none>


KEP-4193: Update ServiceAccount admin docs with additional info on bound tokens

Description
Adds additional information on handling bound service account tokens, including details on external validation, as per KEP 4193.
Issue
https://github.com/kubernetes/enhancements/issues/4193
/cc @liggitt

/sig auth

@kubernetes/sig-auth-leads i know Jordan has re-reviewed this a couple of hours ago, so as an FYI we'll need a tech LGTM as an outcome here. @munnerz PTAL at Jordan's further comments and we'll have SIG Docs eyes on this soon

/lgtm
for technical content

/approve


Support for Serilog Request Logging

Is your feature request related to a problem? Please describe.
I use Serilog's Request Logging feature which allows you to log an entire request and response in a single log message. This reduces the number of log messages and removes the need for correlation of messages when diagnosing an issue.
application.UseSerilogRequestLogging(
    options =>
    {
        options.EnrichDiagnosticContext = (diagnosticContext, httpContext) =>
        {
            var request = httpContext.Request;
            var response = httpContext.Response;
            var endpoint = httpContext.GetEndpoint();

            diagnosticContext.Set("Host", request.Host);
            diagnosticContext.Set("Protocol", request.Protocol);
            diagnosticContext.Set("Scheme", request.Scheme);

            if (request.QueryString.HasValue)
            {
                diagnosticContext.Set("QueryString", request.QueryString.Value);
            }

            var clientName = request.Headers["apollographql-client-name"];
            if (clientName.Any())
            {
                diagnosticContext.Set("ClientName", clientName);
            }

            var clientVersion = request.Headers["apollographql-client-version"];
            if (clientVersion.Any())
            {
                diagnosticContext.Set("ClientVersion", clientVersion);
            }

            if (endpoint is object)
            {
                diagnosticContext.Set("EndpointName", endpoint.DisplayName);
            }

            diagnosticContext.Set("ContentType", response.ContentType);
        };
    });

Describe the solution you'd like
Currently, the only way to add logging of high level Hot Chocolate constructs is via the IDiagnosticObserver. However, I understand from @michaelstaib that changes are coming soon in version 11.
I'd like to be able to resolve some kind of service from IoC above and then add query, response and error information from Hot Chocolate to Serilog.

@RehanSaeed if you help me on this one we can put a serilog adapter package in. I have no clue on serilog itself but can provide the hc knowledge.

That's great because I own two fairly popular Serilog packages and can supply that knowledge!
The ideal scenario would be something I can get from IoC that can give me metadata about the current GraphQL request. All the magic has to happen in the EnrichDiagnosticContext delegate. In the above example, I'm pulling information from the HttpContext and pushing that into a single log message for the entire request which makes analysing logs a lot simpler.

@michaelstaib Sure!

@RehanSaeed @michaelstaib  not sure if you already had time to look into that one? I guess in general there is a need to know what's going on similar to what peter describes in the blog post https://chillicream.com/blog/2021/01/10/hot-chocolate-logging
I think adding serilog integration will help a lot since @RehanSaeed  already sketched it in the sample with the enrichment of agent, client-version. I was wondering if there is a nice way to actually enrich the logs with the hotchocolate request context e.g. to see Query, Mutation and fields requested and the Errors
Cheers and thx for the great work!

Sorry to slightly grave dig. I can see this was marked as done but I don't see where it was added / the documentation on using it?


Concatenating and/or appending between subannual and yearly data

Problem description
When trying to combing two or more IamDataFrames using pyam.concat or IamDataFrame.append() we get an error if we combine frames with and without a subannual column.
Here's a minimum example to reproduce the error:
from pyam import IamDataFrame, IAMC_IDX, concat
import pandas as pd

iam_frame = IamDataFrame(pd.DataFrame(
    [["model_a", "scen_a", "World", "Primary Energy", "EJ/yr", 1, 6.0]],
    columns=IAMC_IDX + [2005, 2010],
))
iam_frame_subannual = IamDataFrame(pd.DataFrame(
    [["model_a", "scen_a", "World", "Primary Energy", "EJ/yr", "summer", 1, 6.0]],
    columns=IAMC_IDX + ["subannual", 2005, 2010],
))
# Three options to get ValueError: Incompatible timeseries data index dimensions
concat([iam_frame, iam_frame_subannual])
iam_frame.append(iam_frame_subannual)
iam_frame_subannual.append(iam_frame)

Proposed solution
Before append or concat perform their respective tasks all IamDataFrames involved are checked if they have subannual columns.
There are two outcomes of this check:

All or none of the data frames have a "subannual" column. In this case there's no further action reqiured.
Some data frames have a "subannual" column while other do not. In this case we add a new "subannual" column with the value "year" for the missing ones and then go ahead with concatenating or appending.

Note that I implemented a similar solution in #598 for appending/merging IamDataFrame instances with both yearly data (as integer) and continuous-time resolution (as datetime). I also did a bit of refactoring and restructuring the test suite to have concat and append behave in a similar manner.

Ah very good. I'll have a look to take some inspiration from that.

@EmiFej and I also came across the error.  The error text is misleading - "incompatible timeseries dimensions" - the error is thrown whenever there are extra columns in dataframes being appended.


Docker "volume create" doesn't error on conflicting options

When creating a volume, docker volume create should produce an error if a conflicting option is provided. Currently the conflicting option is silently ignored
$ docker volume create --name myvolume
myvolume
$ docker volume create --name myvolume --driver convoy
myvolume

expected result
$ docker volume create --name myvolume
myvolume
$ docker volume create --name myvolume --driver convoy
Error: cannot create volume 'myvolume' using the 'convoy' driver because ... (some description)

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

/cc @cpuguy83

Yep, this is because create just currently returns the volume it already new about.
This should be adjusted to error if vol.DriverName() != the requested driver.

#dibs


Typeahead: Fix static value bug

Typeahead initializes its displayed value with the passed-in value prop (if present), but ignores any changes to that prop. So if, say an action elsewhere on the page causes a new value to be passed in, Typeahead completely ignores it.
This PR adds a useEffect to listen for any changes to value and update the internal displayed value variable accordingly.
Test Plan
I recommend copying the code from this sandbox into one of the docs examples, then play around and see if you can break it. You should be able to select a new value via the dropdown or by typing, and the programmatic selection via the buttons should work fine as well.

It's almost there.
Select a value (7) from the dropdown. Open dropdown again, 7 should be selected.
Select a value (6) with the button. Open dropdown again, 6 should be selected but it's not, 7 remains selected.

Ah, good catch. The selected option is being tracked separately from the displayed option for some reason. Updating…

Updated to set the selected item as well. This will show a stale hover state, but that's a separate bug that may not be worth fixing for now.

@dangerismycat can you rerun?


Teach travis how to regenerate gh-pages.

Adds a secure token and a script to generate gh-pages.  I've run the script manually (passing in what I believe Travis will pass for the various environment variables) and confirmed that it works.  Next step is to push to master and see if that side is correct.

Nice

Thanks for the review, merging.


[RFC] Repeal commit separation preference (or policy) for # TODO: RUSTPYTHON

Summary

It was expected to be useful when we pinned a CPython target version and tries to revert tests back to original one.
While we are following up CPython's every update, I found it is easily can be fixed during updating to new CPython library and the separated commits are less useful.
It will makes more friendly experience for new contributors.
Drawbacks, Rationale, and Alternatives
Rather than depending on commits and their messages, we'd better to comment better on the code with TODO: and XXX: not to confuse future contributors to remove them or not.

Unresolved Questions

:+1:


Enhance GUI : add confirmation dialog

Implement confirmation dialog for v1.2
Modify clear, delete and exit commands to show confirmation dialog before the real execution

LGTM


Incorrect error message when sending large STRAT amount

When the amount is set to<PHONE_NUMBER>00 the error message shown incorrectly refers to bitcoin where it should say strat "Impossible to parse the string in a bitcoin amount"

@bokobza this error message comes from the backend, can you change it so it displays the current active coin? Cheers.

on it.

Looks like the fix was merged, thanks @bokobza.
I'll leave this open until we've updated the submodule.

Closing cause submodule was updated


Minimize the use of Message.asObject

Describe the issue
We need to minimize the use of asObject() and remove it where possible.
The following classes still use the method in a non optimal way.

[x] BatchFileTransformerPipe - can only handle String, and turns them into File(InputStream)s.
[x] ZipIteratorPipe - String is handled as filename (FileInputStream), the rest asInputStream().
[ ] ZipWriterPipe - String is handled as filename (FileOutputStream), HttpServletResponse.getOutputStream() or OutputStream.
[ ] JdbcQuerySenderBase - uses asObject for BLOB en CLOB's.
[ ] IfMultipart - requires input to be HttpServletRequest.
[ ] MessageSendingPipe - (if String) sender result message in combination with getTimeOutOnResult() and getExceptionOnResult().
[x] SkipPipe - Checks if String or byte[], skips x amount of bytes, requires refactor to work with all Message types.
[x] UnzipPipe - String is handled as filename (FileInputStream), the rest asInputStream().
[ ] FileHandler - Used by the deprecated FilePipe and FileSender.
[x] CmisSender - When String it assumes it's Base64 content and converts it to a Message.
[x] PipeLineSession - (String) Message.asObject(get(messageIdKey)) !?

Reporter
Niels

I propose to convert all 'when string it is a filename' constructions to use an explicit flag to use a filename

See #6298 for other method changes.