feat: add getter fns for validator data

Description
It adds getter functions to sui_system.move, sui_system_state_inner.move and validator_set.move to read the following information:

voting power
stake amount
tallying rule (reported array)
gas price
commission rate

Test Plan
How did you test the new or updated feature?
We did not add any features. We only added read functions. Therefore, no tests were added.

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] protocol change
[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

Hi @josemvcerqueira thank you for putting up this PR!
I noticed that for active_validator_by_address we are returning a reference to the type Validator, which is a type currently only accessible from the sui_system package. And we would like to keep it this way so that the type can be upgraded to V2 without causing any issues for other packages. This is also the reason why we have ValidatorWrappers stored in tables (there's no way to migrate objects in tables to new types since we can't iterate through them).
So my recommendation is to add individual getters for validator data fields that you need. For example, I imagine you may want to know the gas price quote of a validator, then you could add a getter in sui_system returning a u64 for gas price. I understand this is more verbose than the code you currently have but this is the best way I can think of that preserves the upgradeability of sui_system types. Thanks!

Hi @josemvcerqueira thank you for putting up this PR!
I noticed that for active_validator_by_address we are returning a reference to the type Validator, which is a type currently only accessible from the sui_system package. And we would like to keep it this way so that the type can be upgraded to V2 without causing any issues for other packages. This is also the reason why we have ValidatorWrappers stored in tables (there's no way to migrate objects in tables to new types since we can't iterate through them).
So my recommendation is to add individual getters for validator data fields that you need. For example, I imagine you may want to know the gas price quote of a validator, then you could add a getter in sui_system returning a u64 for gas price. I understand this is more verbose than the code you currently have but this is the best way I can think of that preserves the upgradeability of sui_system types. Thanks!

@emmazzz
Hello Emma, thank you so much for the detailed explanation. Finally able to fully understand the pattern used in sui_system and will use it in our LST :). I added the getter functions as you suggested.

Bumping the PR @emmazzz 👍

Looks good to me in general! There is a compilation error though regarding VecSet. Do you mind fixing it? @josemvcerqueira
Then I (or someone from our team) can take over the PR to finish with needed operations like protocol upgrade and framework snapshot generation

Looks good to me in general! There is a compilation error though regarding VecSet. Do you mind fixing it? @josemvcerqueira Then I (or someone from our team) can take over the PR to finish with needed operations like protocol upgrade and framework snapshot generation

oh Wow sorry about that. I forgot to run the sui move build command. Only ran the sui move test command :(
Thanks for all the help and instruction! Learned a lot.


Experiment and add eslint-plugin-prefer-import

See https://github.com/dferrazm/eslint-plugin-prefer-import
It would be cool to use this to enforce the use of import when the es6-modules addon is activated.
This should be a warning instead of an error because there are still cases when we must use require, e.g.: conditional loading.

Closed by #44


Fix handling of user with absolute ids

Fixes cyberark/conjur#600 (waffle take notice!)

Can you give an example of the policy you have in mind?

Here's one:
---
- !user alice
- !policy
  id: foo
  body:
    - !policy
      id: bar
      body:
        - !group users
        - !grant
          role: !group users
          members:
            - !user /alice

I also confirmed that it doesn't load:
{"error":{"code":"not_found","message":"User '/alice@foo-bar' not found in account 'cucumber'","target":"user","details":{"code":"not_found","target":"id","message":"cucumber:user:/alice@foo-bar"}}}
error: 404 Not Found

There's an outstanding issue with this change, in particular ids beginning with / are always considered absolute ones, whereas before the change they were considered regular namespaced ids that just happen to start with /. I think this was confusing (the meaning was different depending on where the id was used) and in any case I don't think anybody ought to have relied on that, so I think we should make it an error. Waiting for input from @kgilpin however.

@apotterri, mind taking a look at that latest commit?

@apotterri Can you take another look please? :)
(Don't worry about the conflict, I'll resolve it before merging.)

Looks good, thanks for making these changes.


Example sqlite databes does not fit to current source code

I'm trying to run the example application.
For this I followed the steps described under: https://github.com/bethesque/pact_broker#to-have-a-play-around-on-your-local-machine
With "bundle exec rackup" the application starts as expected,
but when I'm trying to access the application with the browser, I only get a json/hal response.
When I'm trying to access the url http://localhost:9292/pacts/latest, I'm getting an SQLException.
{"message":"SQLite3::SQLException: no such table: latest_pacts","backtrace":["/var/lib/gems/1.9.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in `initialize'","/var/lib/gems/1.9.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in `new'","/var/lib/gems/1.9.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:91:in `prepare'","/var/lib/gems/1.9.1/gems/sqlite3-1.3.10/lib/sqlite3/database.rb:266:in `query'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/adapters/sqlite.rb:185:in `block (2 levels) in _execute'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/database/logging.rb:37:in `log_yield'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/adapters/sqlite.rb:185:in `block in _execute'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/database/connecting.rb:250:in `block in synchronize'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/connection_pool/threaded.rb:98:in `hold'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/database/connecting.rb:250:in `synchronize'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/adapters/sqlite.rb:178:in `_execute'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/adapters/sqlite.rb:128:in `execute'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/dataset/actions.rb:908:in `execute'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/adapters/sqlite.rb:362:in `fetch_rows'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/dataset/actions.rb:137:in `each'","/var/lib/gems/1.9.1/gems/sequel-4.18.0/lib/sequel/model/plugins.rb:28:in `each'","/home/hendrik/git/pact_broker/lib/pact_broker/pacts/repository.rb:57:in `collect'","/home/hendrik/git/pact_broker/lib/pact_broker/pacts/repository.rb:57:in `find_latest_pacts'","/home/hendrik/git/pact_broker/lib/pact_broker/services/pact_service.rb:18:in `find_latest_pacts'","/home/hendrik/git/pact_broker/lib/pact_broker/api/resources/latest_pacts.rb:22:in `pacts'","/home/hendrik/git/pact_broker/lib/pact_broker/api/resources/latest_pacts.rb:18:in `to_json'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/decision/flow.rb:465:in `o18'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/decision/fsm.rb:27:in `block (2 levels) in run'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/decision/fsm.rb:47:in `handle_exceptions'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/decision/fsm.rb:27:in `block in run'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/decision/fsm.rb:25:in `loop'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/decision/fsm.rb:25:in `run'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/dispatcher.rb:44:in `block in dispatch'","/var/lib/gems/1.9.1/gems/as-notifications-1.0.1/lib/as/notifications.rb:161:in `instrument'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/events.rb:75:in `instrument'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/dispatcher.rb:43:in `dispatch'","/var/lib/gems/1.9.1/gems/webmachine-1.2.0/lib/webmachine/adapters/rack.rb:65:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/urlmap.rb:66:in `block in call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/urlmap.rb:50:in `each'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/urlmap.rb:50:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/static.rb:124:in `call'","/home/hendrik/git/pact_broker/lib/rack/hal_browser/redirect.rb:19:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/static.rb:124:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/tempfile_reaper.rb:15:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/lint.rb:49:in `_call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/lint.rb:37:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/showexceptions.rb:24:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/commonlogger.rb:33:in `call'","/var/lib/gems/1.9.1/gems/sinatra-1.4.5/lib/sinatra/base.rb:217:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/chunked.rb:54:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/content_length.rb:15:in `call'","/var/lib/gems/1.9.1/gems/rack-1.6.0/lib/rack/handler/webrick.rb:89:in `service'","/var/lib/gems/1.9.1/gems/webrick-1.3.1/lib/webrick/httpserver.rb:138:in `service'","/var/lib/gems/1.9.1/gems/webrick-1.3.1/lib/webrick/httpserver.rb:94:in `run'","/var/lib/gems/1.9.1/gems/webrick-1.3.1/lib/webrick/server.rb:191:in `block in start_thread'"]}

I seems that the *.sqlite3 files from the repository are outdated.

I couldn't recreated it (I actually got another error from Reform) so on the principle of always rolling forward, I have released version 1.4.0 which has some shiny new features like viewing the differences between pact versions. Please let me know if you still have problems.

Thanks, this version works for me!


[Doc] Fixing typos and broken links in CONTRIBUTING.md

I started acquaintance with repo from mds and some broken links caught my eye, so here's minor fixes for links and typos.

Thank you @Marufenko really appreciated it.


knex should support sql.js

https://github.com/kripken/sql.js/
The primary benefit of using sql.js is that you can use it in-browser. It also means eliminating a C dependency.

Agreed! This has been on my todo list
My main question here was how should the database be accessed? Should that be a concern of Knex - or is it up to you to provide the database file and persist with localstorage, indexdb or otherwise?

It's up to you. You basically pass in the database file as a buffer and can
export it as a buffer at any point in time. See the following two sections
in the document I linked to above:

Loading a database from a server.
Use from node.js.

One wrinkle is that you also have the ability to run the query in a web
worker. This helps to keep intensive queries from blocking the world.
On Mon, 27 Apr 2015 at 17:23 Tim Griesser<EMAIL_ADDRESS>wrote:

Agreed! This has been on my todo list
My main question here was how should the database be accessed? Should that
be a concern of Knex - or is it up to you to provide the database file and
persist with localstorage, indexdb or otherwise?
—
Reply to this email directly or view it on GitHub
https://github.com/tgriesser/knex/issues/799#issuecomment-96856439.

Hi,
I'm also very interested in this feature! sql.js is working fine with the Cordova file plugin to read/write the db. And I was able to build a huge SQLite db from scratch, saving it to the file system, reading it out and executed a SELECT query successfully.
I would also tend to leave it to the user to provide the db-file. Is there any way I can help you? I really want this feature to be implemented ;-)

This would be much appreciated!

+1
Please implement this feature! I tried to figure out how to make a new dialect for Knex but I failed. Is there any guide or how-to for doing this?

I've already thumbed this but want to show more support. Would love to have this as it removes the need to have a driver you need to build and deal with gyp and multi-platform issues. It uses exactly the same dialect as sqlite3 so that part is already implemented. What's needed is the adapter ability to read in & write out a file as a buffer on creation and changes, as @jasonbaker pointed out above.
It maybe should be made clear that sql.js is not sqlite syntax ported into LocalStorage or IndexedDB like your question seemed to imply @tgriesser ( the way I interpreted it, and I'm not sure how much you've looked into sql.js so forgive me there ). It's a pure JS driver that deals with actual sqlite .db files. I'm honestly surprised that it doesn't get love from any kind of abstraction layer or ORM considering it removes the whole build / gyp thing.
Don't get me wrong on that last statement, I know everything takes time, testing & investment. Also, as a few people above have offered I'd also be willing to help out if there were some guidance for adapter development or tips you'd have. Thanks!

Just to pile on, I think that in-memory relational databases are way underexploited – how many times have you had to make and maintain an ad hoc hash index out of objects in JS? Having a great query builder to sit on top of sql.js would open up a lot of possibilities for chopping up data in the browser.

Unfortunately, it's still not supported.

It's not a true adapter, more of a wrapper, but I've just put out a 1.0 rc for a package I've been working on for a while that allows for using sql.js ( and sqlite3) as a knex backend, along with a document store style API. Still exposes the knex query builder though.
Hope it helps all those above who were interested in this kind of thing.
Trilogy

Repo
Homepage / Docs

Wow that is really cool ! Thank you @citycide

@citycide's package looks super sweet, and I wish I could use it, but I am looking for sqlite.js support from knex, since I am not using the db connection directly. I am using one of the many web frameworks that uses knex as a backend (keystone 5) and [for keystone to work with sqlite.js] would need to configure knex with sqlite.js support.
so having another package that supports sqlite.js is not the same as knex supporting sqlite.js

My main question here was how should the database be accessed? Should that be a concern of Knex - or is it up to you to provide the database file and persist with localstorage, indexdb or otherwise?

@tgriesser Can it be both? Example: If you pass the "normal" (i.e. same as sqlite3 driver) connection.filename option then knex manages persisting the db in that file, and if you omit that option then you must pass functions connection.create (initialize and return sqlite.js instance) and connection.save (serialize & store data from given sqlite instance.. called after any INSERT/UPDATE/etc)?

I wrote a basic SQL.js client for greldal playground some time back.
It currently supports a subset of knex features, but if there is interest in this I can move to this to a separate package. Any contributions to add the missing features would be most welcome.

I'm also interested in this. Mostly because I'm tired of sqlite3 npm package always breaking after a while with a specific version (the prebuilt binary just 404 or 403s after a while for whatever reason, I assume the maintainer doesn't want to keep old binaries and then it tries compiling sqlite3 with node-gyp which always breaks) and would rather just not have any native dependencies. I only really use sqlite for testing purposes, so this would be an overall win for me.

Wouldnt this be as simple as adding an alias for sqlite3 in webpack, and then redirecting those requests to a wrapper method that passes the filename in the way that SQL.js expects? Since they share the API I'm thinking Knex would treat it as a native sqlite3 db but underneath what's really happening is in SQL.js.
I might attempt this in a few weeks, but wanted to share just in case there's something ugly expecting me on the other side of the door.

Hi. I've made an npm package that could be used to make sql.js look like sqlite3, at least in general. In case anyone's interested:
https://www.npmjs.com/package/sql.js-as-sqlite3
I can see that knex supports sqlite3 which means that someone could try using this wrapper to swap sqlite3 package with it.
Usage example for Sequelize:
import Sequelize from 'sequelize'
import sqlJsAsSqlite3 from 'sql.js-as-sqlite3'

const sequelize = new Sequelize('sqlite://dbname', {
  dialectModule: sqlJsAsSqlite3
})

@catamphetamine dope, let me check and report back!


Feat: Add property for devtools.

Codecov Report

Merging #67 (6a7cece) into main (2f22bc0) will decrease coverage by 2.40%.
The diff coverage is 0.00%.

@@             Coverage Diff             @@
##              main      #67      +/-   ##
===========================================
- Coverage   100.00%   97.59%   -2.41%
===========================================
  Files            9        9
  Lines          325      333       +8
===========================================
  Hits           325      325
- Misses           0        8       +8

Flag
Coverage Δ

elementary
97.59% <0.00%> (-2.41%)
:arrow_down:

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

Impacted Files
Coverage Δ

packages/elementary/lib/src/core.dart
91.01% <0.00%> (-8.99%)
:arrow_down:

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


Angular CLI Reference Update

The Angular CLI Reference PDF on https://cli.angular.io/ is great for in-depth information about each command.
Can you update this document with "ng serve" and maybe other commands that are available and not in the doc?
I know the github page has,
ng serve --host <IP_ADDRESS> --port 4201 --live-reload-port 49153
A more informative explanation with would be great.
This tool is absolutely brilliant, thank you guys.

IMO you should just use the built-in help, though I suppose it's useful for people that don't have ng installed and want to see what it can do.

We're due on updating https://cli.angular.io/, and documentation in general. @Brocco is currently working on it and we aim to have it updated soon-ish.

The documentation efforts are being tracked under #2711. Part of this process will include updating the documentation on cli.angular.io (likely not as a PDF).


Add timeout in the client

Under certain failure scenarios, when the InfluxDB server accepts a connection but never responds, the Go client connects and waits forever (at least 12 hours). A rudimentary grep of the client code for "timeout" produces no results. It would be nice to be able to set a timeout, for example, if the server hasn't responded within 5 minutes, close the connection.
In our case, we're running a Go data collector from cron every minute, and under the failure scenario above, we have seen >600 processes running, all waiting for a response. :-(

duplicate of #231


Remove hard-coded interface for JavaScript tokenizer

This change allows the input and output directories to be provided as
command line arguments to the tokenizer script. Previously, this script
used hardcoded constants for these directories.
Additionally, this change adds error checking code for these inputs and
simplifies the logic for iterating over the input project directories.

Thanks @NoahRoseLedesma !


chore: update version constraints

Description
update version constraints
https://github.ibm.com/GoldenEye/issues/issues/4915

Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

@iamar7 Was there a reason why you bumped minimum from ">= 1.57.0, < 2.0.0" -> ">= 1.59.0, < 2.0.0" ?

I have updated the version from 1.57.0 to 1.61.0 because while initializing provider plugins the pre-commit was failing giving the following error:
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider
│ ibm-cloud/ibm: no available releases match the given constraints >= 1.49.0,
│ >= 1.51.0, >= 1.57.0, 1.57.0, >= 1.59.0, >= 1.61.0, < 2.0.0

/run pipeline

OK it means our basic example has a dependant module that requires >= 1.61.0 so hence we can't lock it into 1.57.0. Lets go with this for now, I'll be discussing an item on our next deep dive around handling provider versions going forward anyway

:tada: This PR is included in version 1.6.5 :tada:
The release is available on:

GitHub release
v1.6.5

Your semantic-release bot :package::rocket:


Latest PR requires repository was always configured with sphinx-multiversion

Earlier this week I was playing around with the source code because I noticed that to build with sphinx-multiversion, I could not simply run sphinx-multiversion . _build/html within the docs sub-directory, it had to be from the repo root.
I was debating about creating a PR for smartly finding gitroot, but it looks like #13 resolved that issue as well.
However, it also introduces an issue which requires the repository to have the sphinx-multiversion extension installed and enabled for all previous git refs, which isn't the case in my scenario.
Would reverting
https://github.com/Holzhaus/sphinx-multiversion/blob/bda14735f9ccb5b6bc416b373999e4991a64a428/sphinx_multiversion/main.py#L192
back to
https://github.com/Holzhaus/sphinx-multiversion/blob/756a60beb34501b2afa2fa742bf81f2c2729d298/sphinx_multiversion/main.py#L188
break the issue brought up in #11?

I'm having a related, but different problem after #13 .
One of the extensions that I use (sphinx-gallery) has changed its type requirements on certain configuration settings; one setting that used to accept bool now fails on that type.  This is easy enough to fix with the current conf.py, but for older tags, this breaks the entire doc build because it's trying to use the current extension version with an older config version.
Prior to merging #13 (ie on version 0.2.3), this works fine, because the configuration pulls from the main conf.py (ie confpath not abspath(confdir)) and not the historical version.  I expect that this general problem will arise elsewhere in the future, so it would be good to have a generally flexible solution here.
Maybe a user-defined switch to determine whether to use the main conf (old behavior) would be appropriate here?

Maybe a user-defined switch to determine whether to use the main conf (old behavior) would be appropriate here?

No, the old behavious was correct and the new one is a bug. I'll check if I can reproduce it.

Can you please check if #27 resolves the issue?


nixos/bitcraze: init, cfclient: init at 2023.6

Description of changes
This PR adds various development tools for the https://www.bitcraze.io/ Crazyflie drones.

cflib Python library and supporting packages
cfclient Python GUI application and library
bitcraze-udev-rules to be added to services.udev.packages, this can also be done via the new configuration option options.hardware.bitcraze.enable

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] 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

[x] 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
[x] 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.

Thank you for your comments @h7x4 , your suggestions were implemented.

@StarGate01 Cool! I'll have another look through it. Feel free to mark the comments as resolved.

It looks like you accidentally mass-pinged a bunch of people, which are now subscribed
and getting notifications for everything in this pull request. Unfortunately, they
cannot be automatically unsubscribed from the issue (removing review request does not
unsubscribe), therefore development cannot continue in this pull request anymore.
Please create a new pull request, link back to this one and ping the
people actually involved in here over there. For the next time, remember to set your PR to draft status before rebasing. In draft status, you can preview the list of maintainers that are about to be requested for review, which allows you to sidestep this issue.
In order to avoid this in the future, there are instructions for how to properly
rebase between branches in our contribution guidelines.
Setting your pull request to draft prior to rebasing is strongly recommended.
In draft status, you can preview the list of people that are about to be requested
for review, which allows you to sidestep this issue.
This is not a bulletproof method, though, as OfBorg still does review requests even on draft PRs.


Question on projection of child object properties in a Select.

Thanks for a great product. I'm hoping you can help with the following.
Description
See the fiddle below. I would like to know how to perform a projection on a child property of the collection type within a Select; in this case the collection type is Person and the child property of Person is Address. The goal is to only populate the properties of the Person and Person.Address that are required. I have this working for Person but can't figure out how to do if for Person.Address.
Fiddle
Fiddle showing simple example
https://dotnetfiddle.net/nvU7DB
Technical details
The reason for wanting this is to reduce the amount of columns being retrieved from the database. We are using Microsoft.EntityFrameworkCore Version 6.0.5, Microsoft.EntityFrameworkCore.SqlServer Version 6.0.5 to access an Azure SQLServer database.

I have found that if I include ParsingConfig as below
ParsingConfig parsingConfig = new ParsingConfig(){ AllowNewToEvaluateAnyType = true};
IEnumerable result = (IEnumerable)peopleQueryable.Select(parsingConfig, dynamicSelect);
with the linq string "new Person(Id, FirstName, new Address(it.Address.Id, it.Address.City) As Address)"
it will work but the comment on the property AllowNewToEvaluateAnyType  suggests it is a bad idea, without it I get the error "Unhandled exception. Type 'Address' not found", so I guess the question is why is the Address type not found?

Did you also try setting ParsingConfig.ResolveTypesBySimpleName to true?

Hi Stef, thanks that has got it working.
The code from my simple example would look like this.
string dynamicSelect = "new Person(Id, FirstName, new Address(it.Address.Id, it.Address.AddressLine1, it.Address.City) as Address)";
ParsingConfig parsingConfig = new ParsingConfig(){ResolveTypesBySimpleName = true};
IEnumerable result = (IEnumerable)peopleQueryable.Select(parsingConfig, dynamicSelect);


fix: powerbi-docs/developer/walkthrough-push-data-get-datasets.md

Add code fence languages and adjust indenting

@nschonni : Thanks for your contribution! The author, @markingmyname, has been notified to review your proposed change.

We're in the process of pulling this commit to the private repository so we can verify the updates on staging. We'll post a new private repo PR # shortly and then close this PR.

@nschonni @markingmyname - The commits in this PR were moved to the private repo (PR #1580) for validation and staging. We'll close this PR now.


feat: Use upstream Dioxus

WIP. I will wait until master branch is fully stable

Closing in favor of https://github.com/marc2332/freya/pull/63


Make UPowerWidget shows text by default and permanently

Maybe it's already possible to do so and I am missing something, but I would like to make the UPowerWidget to always display the text instead of having to click on it.
Also, I would like to have the possibility to set the timer in order to never hide the text again (maybe setting text_displaytime = 0)

I'd happily look at a Pull Request if you want to make those changes.
Alternatively, there are a couple of ways you could fix this:
from libqtile import hook, qtile

@hook.subscribe.startup
def set_upower_text_display():
    upower = qtile.widgets_map["upower"]
    upower.show_text = True
    upower.bar.draw()

or
from qtile_extras import widget

class UpowerWidgetPlusText(widget.UPowerWidget):
    def __init__(self, **config):
        widget.UPowerWidget.__init__(self, **config)
        self.show_text = True

    def toggle_text(self):
        pass

# You can then then add an instance of this widget in your widget list.


Foreign key actions - warnings for unsupported sources (oracle,etc) and tests for reports

Sources other than MySQL and PostgreSQL will now display warning that Foreign Key Actions are not supported if a foreign key exists (screenshot)

Unit tests for report generation modified to test FK Actions too (for MySQL and Postgres)

[x] Tests pass

LGTM


Adding Test files for Required testing and SearchOptions. Will obviously

modify these files and build more test cases upon them.
This PR only has the unit test for Required and searchoptions features. But, this is added to functionaltests as sanity and QA will modify these files to build upon functional testcases.

Please merge to develop - there is nothing to verify in this commit, only small changes to SearchOptionsGenerate key since my ET doc for that test differed.

OK will do

@bsrikan : including you as well for a heads up.

Here is my change for bug 40403.
https://github.com/marklogic/entity-services/commit/3ea053bee9b382f534db85952b319d120acab2a7


Fix instance status strings inconsistency

Align the STATS instance status strings with the compute API ones
Only use the payloads defined constants for manipulating instance statuses
Redefine ComputeStatusRunning to "active"

Coverage decreased (-0.02%) to 62.848% when pulling c0dd756d2600ebac2d708a4c3c8ec31aa3d4994f on sameo/issue/325 into 26d8e7ce3b182b823bc547cdd6782d2d7878c4f5 on master.

Thank you for doing this cleanup.  A big +2 for maintenance!

Coverage decreased (-0.02%) to 62.848% when pulling c184da1eed53efe4d5c63efecf904c002e00dded on sameo/issue/325 into 26d8e7ce3b182b823bc547cdd6782d2d7878c4f5 on master.

Coverage decreased (-0.02%) to 62.848% when pulling c184da1eed53efe4d5c63efecf904c002e00dded on sameo/issue/325 into 26d8e7ce3b182b823bc547cdd6782d2d7878c4f5 on master.


Click or Hover one left menu when annotating

When I am in the annotation window on a job, there is a vertical menu with tools on the left hand side.
These tools are activated by hovering only. If by mistake I clicked, the tool disappears, and now I need to hover....
I think that the UX would be better if the tool is activated also by clicking on it.
Also, I think it would be an improvement if the tool stays active with the same settings even after clicking done or Shift-N so the user con repeat the previous annotation, until esc is pressed, or another tool is selected...
DBG

The first is clear. About the second one:

Also, I think it would be an improvement if the tool stays active with the same settings even

Could you clarify? As I remeber it works now exactly this way. If you created a rectangle from external points, than pressing N again it will again create rectangle from external points. Or you mean issue like this one #3474 when an object was created with any automatic tool, on Shift + N is being redrawn as a regular one?

@bsekachev  Thank you!


fix: exclude test files

:tada: This PR is included in version 1.0.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Back merge to the fork

Current coverage is 94.47%

Merging #5 into UIA will not affect coverage as of 9e17328

@@              UIA      #5   diff @@
=====================================
  Files          31      31
  Stmts       17118   17118
  Branches        0       0
  Methods
=====================================
  Hit         16172   16172
  Partial         0       0
  Missed        946     946

Review entire Coverage Diff as of 9e17328

Powered by Codecov. Updated on successful CI builds.


[otbn] Overnight synthesis failure for OTBN

Looks like the latest CHIP_EARLGREY_ASIC nightly synthesis run failed to build OTBN, with the following elaboration errors:
Elab Errors

Error:  ../src/lowrisc_ip_otbn_0.1/rtl/otbn.sv:345: The width of port data_i on instance g_dmem_intg_check[0].u_dmem_intg_check of design prim_secded_39_32_dec is inconsistent with other instantiations of the same design. (ELAB-369)

Error:  Cannot resolve pin data_i[311] on cell prim_secded_39_32_dec:g_dmem_intg_check[0].u_dmem_intg_check. (ELAB-327)

This is new, so it's probably a result of ee060bd. @GregAC: Any ideas?

Yes it's from the ECC changes, wiring the full dmem width full to the individual ECC checks rather than the 39 bit chunks. Didn't spot it before as there's no actual testing of that logic in our current setup and my quick hack to trial things corrupted bits in all chunks so missed that only one was actually being checked.
Also produced an AscentLint error: https://reports.opentitan.org/hw/ip/otbn/lint/ascentlint/latest/results.html
I'll do a PR to fix.


Moved tests out of run_in_graph_and_eager_mode in normalizatoin_test

cc @gabrieldemarmiesse

@smokrow
You are owner of some files modified in this pull request.
Would you kindly review the changes whenever you have the time to?
Thank you very much.

Thanks again, that's a great help, if I had to do it alone, it would take forever!

My pleasure. It's a very good idea using pytest fixture, thanks for the solution.


10997 - Added code changes for new business unit to create exchange s…

Done Code Changes

Do we also need to update UKHO.ExchangeSetService.FulfilmentService\appsettings.json with the same change?

Do we also need to update UKHO.ExchangeSetService.FulfilmentService\appsettings.json with the same change?

BU value from UKHO.ExchangeSetService.FulfilmentService\appsettings.json used in readme file search query. Readme file exists under ADDS BU.
So we do not have to update UKHO.ExchangeSetService.FulfilmentService\appsettings.json.


Upgrade GORM

Solves #471

Porting as-is and only changing the API parts seems to break MySQL and Postgres when SQLite keeps working.


WIP: refactor: replace all occurrences of "Influence" with "OpenRank"

Brief Information
This pull request is in the type of (more info about types):

[ ] build
[ ] ci
[x] docs
[ ] feat
[ ] fix
[ ] perf
[x] refactor
[ ] test

Related issues (all available keywords):

close #526

Details

[x] I have replaced all occurrences of "Influence" with "OpenRank" in codebase
[ ] replace all occurrences of "Influence" with "OpenRank" in picture

Checklist

[x] I have read the CONTRIBUTING doc
[x] I have signed the CLA

Others

N.A.

I will replace all occurrences of "Influence" with "OpenRank" in the pictures  which contain "Influence" next.

Oops, an occurrence was omitted :)

I will replace it now. 😄


 tag doesn't close

All tags are closing correctly (so far) except this one. I type cmd+alt+. and nothing happens.

Unable to reproduce this bug.
Closing this issue as it has been opened for quite awhile.
Please reopen if this bug still exists.
Thanks.


[SU-149] Split workflows table out of submission details component

In preparation for some more changes to the submission details page, this refactors the SubmissionDetails component to split the workflows table and its sorting and filtering out into a separate component.

Rebased to include changes to test configuration in #3213.


Gulp ang 5

The frontend folder contains a script to build the existing rails app against gulp instead of the asset pipeline. This is done via gulp default in the frontend directory. It will copy files up to public/ and config/, which must be checked in currently.
The fingerprinting / asset cache busting is done via gulp-rev which prints a manifest JSON file out. This is very convenient as Rails can then use that to lookup current asset urls.
Need to add:

[ ] Gulp watcher on js, html, css
[ ] Faster dev process around using the dist folder
[ ] Cleanup the package.json since I changed direction mid-stream

Howdy from Release Ninja! You should write a release note targeted at a semi-technical end user who is
not familiar with the code base. Include at least 1 image, wherever possible. Review the help article if
you are not familiar with Release Ninja.
When your pull request is ready, do one of the following:

Notify Release Team
Don't notify anyone because it's a small change or doesn't concern them
Whatever you do though, make sure you :tada:


Add current period to BGC Futures Tab

@meztez Just like in the Feasibility tab, we need results for the 1991-2019 "current period" in the BGC futures tab.

sorry... late night review not paying off...


Developers be aware, problem with Json on creating Module

I have spend considerable amounts of time figuring out that the example above is not 100% correct.
On the Twin module json, the segment:
"properties.desired":
should be left out if assigning to a single module. (Actually also if you are making a deployment, but deployment makes it more visible that it might be a problem.
Web will just say: "An error occurred while submitting, please try again". Btw thats after having validated the json first ?
@Microsoft / Azure / IOT guys: Could you please make the web ui so it at least holds the correct example data in the azure portal. Fair enough that documentation cant keep up, but the creation of modules, is very textual, so please ensure that it holds an example rather than {}. Or add a help button that leads to a format generator or at least an updated example.
This error persists even command line az iot edge set-modules will just respond with failed to parse json for argument content. No help, no nothing... best of luck guessing our format.
In general IOT Edge seems to suffer from renaming/changes in logic, without updating the examples, that are otherwise super nice.

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

ID: d574f299-1f45-ad1b-755f-ced23163a60a
Version Independent ID: 54532d7c-60b0-8522-9455-4ec094af9cb4
Content: Deploy blob storage on module to your device - Azure IoT Edge
Content Source: articles/iot-edge/how-to-deploy-blob.md
Service: iot-edge
GitHub Login: @arduppal
Microsoft Alias: arduppal

There is actually a little tell tale sign that this is the problem (once you know what to look for.
The portal when giving the error actually shows the json it tried to parse, not the json given. I found this little bugger:
"AzureBlobStorageonIoTEdge": {
"properties.desired": {
"properties.desired": {
"deviceAutoDeleteProperties": {
"deleteOn": true,
Double properties.desired = Well there's your problem :)

@tggofdk Thank you very much for bringing this to our attention. I am assigning this to the content owner for review and an update as appropriate. Please let me know if you have additional questions or more information to share. This is greatly appreciated.

@arduppal As an investigation into this issue, there are two occurrences where JSON is copied in the solution, and this might be the root of the issue:
Instance 1:

Instance 2:

@tggofdk An update has been made to the documentation and published. This issue should be resolved and so, we will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


Update AUTHORS

Somehow the git history is not showing some of these authors via the CLI - this may well be due to overuse of squash/merge, but in any case Authorship is both important and hard to manage. I also propose we move to alphabetic order. Thoughts?

How about breaking out the list of authors by version:
Version 2.0

Lewis Rossman 😁

Version 2.1

Names from ReleaseNotes_2.1 listed alphabetically

Version 2.2

Names from ReleaseNotes_2.2 listed alphabetically

I like @LRossman suggestion. It is used in other OS projects like Wordpress.

I like that idea from the perspective of a project with a clear roadmap and many different versions down the line. However, I'm wondering if it's worth the extra effort right now with this project. Since the future is a bit in flux (decisions about whether to reformulate and/or put effort into a new codebase), I would just caution overthinking this issue.

But hey - if we have the list already from each of the minor version notes, then it's pretty simple to do - any volunteers?

I will try to update the AUTHORS file per Lew's suggestion.

dropping in favor of #573


Fix #41377 - Add outdated and upgrade to docs

#41377
After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Not really needed as this is a change to the docs - nonetheless all work!
Additionally, if adding a new cask:

[ ] Named the cask according to the token reference.
[ ] brew cask install {{cask_file}} worked successfully.
[ ] brew cask uninstall {{cask_file}} worked successfully.
[ ] Checked there are no open pull requests for the same cask.
[ ] Checked the cask was not already refused in closed issues.
[ ] Checked the cask is submitted to the correct repo.

Again not really needed as this is a documentation change! Let me know if anything more needs doing 👍

Welcome, and thank you for the contribution.

@vitorgalvao Thanks a lot! Hope to contribute further in the future 👍


Suiron.jl - An Inference engine written in Julia.

@JuliaRegistrator register()

Registration pull request created: JuliaRegistries/General/67982
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" 5447368aa3ec326b4552abd9b50bed7c82301d37
git push origin v0.1.0


Add Postgres psycopg2 package to Dockerfile

See https://github.com/Senzing/docker-xterm/issues/12

FIxed in #14


Add support for mongodb.aggregate function

Mongo aggregate function support

I think as long as this is a specific mongodb feature I would recommend to directly access the collection property from outside.

For the sake of abstraction, i agree.


Support Cocoapods 0.36

At the moment DateTools crashes when installed through version of cocoapods 0.36+
The main change is that now the resources bundle are not included into the main one, but they are inside the framework. You can find more information here: http://blog.cocoapods.org/CocoaPods-0.36/

Caveats
One caveat about bundling resources is, that until now we had to embed all resources into the application bundle. The resources were referenced programmatically by [NSBundle mainBundle]. Pod authors were able to use mainBundle referencing to include resources the Pod brought into the app bundle. But with frameworks, you have to make sure that you reference them more specifically by getting a reference to your framework's bundle e.g.

Objective-C
 [NSBundle bundleForClass:<#ClassFromPodspec#>]
Swift
NSBundle(forClass: <#ClassFromPodspec#>)
For DateTools the problem is in this macro:
NSLocalizedStringFromTableInBundle(key, @"DateTools", [NSBundle bundleWithPath:[[[NSBundle mainBundle] resourcePath]<EMAIL_ADDRESS>nil)
Which can't find the bundle and returns nil causing the crash.
A possible solution, even if probably not the more elegant is to replace the macro with:
NSLocalizedStringFromTableInBundle(key, @"DateTools", [NSBundle bundleForClass:NSClassFromString(@"DTTimePeriod")], nil)

I also meet this issue when using DateTools as framework. This line of code fixed this. Thanks.

+1

Fixed in #84 and v1.6.0


LINK : fatal error LNK1181

Describe the bug
When following the build instructions, the build at step 4: Build Unreal Project fails while linking against assimp.
To Reproduce
Platform:
Windows 11
Unreal Engine 4.27.2
Visual Studio 2022
Steps to reproduce the behavior:

create a new UE4 project
follow instructions at https://github.com/irajsb/UE4_Assimp/wiki/How-To-Build

Logs
Here is the full output from VS:
Build started...
1>------ Build started: Project: UE4_Assimp_Test, Configuration: Development_Editor x64 ------
1>Invalidating makefile for UE4_Assimp_TestEditor (UE_Assimp.uplugin has been added)
1>Copying D:\Unreal Projects\UE4_Assimp_Test\Plugins\UE4_Assimp\Source\ThirdParty\UE_AssimpLibrary\assimp\bin\Release\assimp.dll to D:\Unreal Projects\UE4_Assimp_Test\Plugins\UE4_Assimp\Binaries\Win64\assimp.dll
1>Failed to copy file: Could not find a part of the path 'D:\Unreal Projects\UE4_Assimp_Test\Plugins\UE4_Assimp\Source\ThirdParty\UE_AssimpLibrary\assimp\bin\Release\assimp.dll'.
1>UnrealBuildTool : warning : Library 'D:\Unreal Projects\UE4_Assimp_Test\Plugins\UE4_Assimp\Source\ThirdParty\UE_AssimpLibrary\assimp\lib\Release\assimp.lib' was not resolvable to a file when used in Module 'UE_AssimpLibrary', assuming it is a filename and will search library paths for it. This is slow and dependency checking will not work for it. Please update reference to be fully qualified alternatively use PublicSystemLibraryPaths if you do intended to use this slow path to suppress this warning.
1>Parsing headers for UE4_Assimp_TestEditor
1>  Running UnrealHeaderTool "D:\Unreal Projects\UE4_Assimp_Test\UE4_Assimp_Test.uproject" "D:\Unreal Projects\UE4_Assimp_Test\Intermediate\Build\Win64\UE4_Assimp_TestEditor\Development\UE4_Assimp_TestEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -abslog="C:\Users\isaac\AppData\Local\UnrealBuildTool\Log_UHT.txt" -installed
1>LogInit: Display: Loading text-based GConfig....
1>Reflection code generated for UE4_Assimp_TestEditor in 4.0002073 seconds
1>Building UE4_Assimp_TestEditor...
1>Using Visual Studio 2022 14.33.31629 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629) and Windows 10.0.22000.0 SDK (C:\Program Files (x86)\Windows Kits\10).
1>Building 8 actions with 16 processes...
1>  [1/8] Default.rc2
1>  [2/8] UE4Editor-UE4_Assimp_Test-0001.lib
1>     Creating library D:\Unreal Projects\UE4_Assimp_Test\Intermediate\Build\Win64\UE4Editor\Development\UE4_Assimp_Test\UE4Editor-UE4_Assimp_Test-0001.lib and object D:\Unreal Projects\UE4_Assimp_Test\Intermediate\Build\Win64\UE4Editor\Development\UE4_Assimp_Test\UE4Editor-UE4_Assimp_Test-0001.exp
1>  [3/8] UE4Editor-UE4_Assimp_Test-0001.dll
1>     Creating library D:\Unreal Projects\UE4_Assimp_Test\Intermediate\Build\Win64\UE4Editor\Development\UE4_Assimp_Test\UE4Editor-UE4_Assimp_Test-0001.suppressed.lib and object D:\Unreal Projects\UE4_Assimp_Test\Intermediate\Build\Win64\UE4Editor\Development\UE4_Assimp_Test\UE4Editor-UE4_Assimp_Test-0001.suppressed.exp
1>  [4/8] Module.UE_Assimp.gen.cpp
1>  [5/8] Module.UE_Assimp.cpp
1>  [6/8] UE4Editor-UE_Assimp-0001.lib
1>     Creating library D:\Unreal Projects\UE4_Assimp_Test\Plugins\UE4_Assimp\Intermediate\Build\Win64\UE4Editor\Development\UE_Assimp\UE4Editor-UE_Assimp-0001.lib and object D:\Unreal Projects\UE4_Assimp_Test\Plugins\UE4_Assimp\Intermediate\Build\Win64\UE4Editor\Development\UE_Assimp\UE4Editor-UE_Assimp-0001.exp
1>  [7/8] UE4Editor-UE_Assimp-0001.dll
1>LINK : fatal error LNK1181: cannot open input file 'D:\Unreal Projects\UE4_Assimp_Test\Plugins\UE4_Assimp\Source\ThirdParty\UE_AssimpLibrary\assimp\lib\Release\assimp.lib'
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets(44,5): error MSB3073: The command ""C:\Program Files\Epic Games\UE_4.27\Engine\Build\BatchFiles\Build.bat" UE4_Assimp_TestEditor Win64 Development -Project="D:\Unreal Projects\UE4_Assimp_Test\UE4_Assimp_Test.uproject" -WaitMutex -FromMsBuild" exited with code 6.
1>Done building project "UE4_Assimp_Test.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

fixed by changing assimp build to "Release".
Any further docs on using this plugin? for example, steps to set up the example project pictured at https://blueprintue.com/blueprint/inhg2zu3/

Example is provided in releases tab


Update package readme

Description
Update the package readme which is shown at:
https://pypi.org/project/wandb/
Note, there are other things we might want to change in this file.  At one point this was very similar to README.md.
The difference is package_readme.md can not have any relative code links.  If we want to go back to one file and have pypi show the same info, someone can do that with a later PR.
Testing
None

Great thanks Jeff! Could you please also update the first paragraph of description:
Use W&B to build better models faster. Track and visualize all the pieces of your machine learning pipeline, from datasets to production models.

- Quickly identify model regressions. Use W&B to visualize results in real time, all in a central dashboard.
- Focus on the interesting ML. Spend less time manually tracking results in spreadsheets and text files.
- Capture dataset versions with W&B Artifacts to identify how changing data affects your resulting models.
- Reproduce any model, with saved code, hyperparameters, launch commands, input data, and resulting model weights.

[Sign up for a free account →](https://wandb.ai/login?signup=true)

Great thanks Jeff! Could you please also update the first paragraph of description:
Use W&B to build better models faster. Track and visualize all the pieces of your machine learning pipeline, from datasets to production models.

- Quickly identify model regressions. Use W&B to visualize results in real time, all in a central dashboard.
- Focus on the interesting ML. Spend less time manually tracking results in spreadsheets and text files.
- Capture dataset versions with W&B Artifacts to identify how changing data affects your resulting models.
- Reproduce any model, with saved code, hyperparameters, launch commands, input data, and resulting model weights.

[Sign up for a free account →](https://wandb.ai/login?signup=true)

Done


No module named 'gntk_cond'

Hello, when I was running your code python condense_transduct_2.py, I encountered an error message saying 'No module named 'gntk_cond''. Could you please upload the 'gntk_cond.py' file?

Thanks for your attention, gntk_cond is not needed in our method, you can directly comment out the code that imports gntk_cond. We also update the repo now.

Thanks for your reply! Got it.
Hua
获取 Outlook for iOShttps://aka.ms/o0ukef

发件人: Yuchen Zhang @.>
发送时间: Monday, June 24, 2024 2:36:15 AM
收件人: NUS-HPC-AI-Lab/GEOM @.>
抄送: Liu, Hua @.>; Author @.>
主题: Re: [NUS-HPC-AI-Lab/GEOM] No module named 'gntk_cond' (Issue #1)
Closed #1https://urldefense.com/v3/__https://github.com/NUS-HPC-AI-Lab/GEOM/issues/1__;!!HXCxUKc!2rBrKVwLfFpPIbnHLcJD5ZpGDx0w2ni7IA50JbPjIdo4X4znlRlXMDwQAblwHTg6_CZZvxiFTTt0jNaHVMU_ggec$ as completed.
―
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/NUS-HPC-AI-Lab/GEOM/issues/1*event-13257780537__;Iw!!HXCxUKc!2rBrKVwLfFpPIbnHLcJD5ZpGDx0w2ni7IA50JbPjIdo4X4znlRlXMDwQAblwHTg6_CZZvxiFTTt0jNaHVFolVuEv$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ANXIUTDIRNJ2UPUMKNKNG2LZI4IR7AVCNFSM6AAAAABJU72IIWVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJTGI2TONZYGA2TGNY__;!!HXCxUKc!2rBrKVwLfFpPIbnHLcJD5ZpGDx0w2ni7IA50JbPjIdo4X4znlRlXMDwQAblwHTg6_CZZvxiFTTt0jNaHVO47qjpQ$.
You are receiving this because you authored the thread.Message ID: @.***>


Path with parent node IDs only

I need a tree structure with the ability to get all parent nodes up to the root, the root node, the parent node and all direct children.
Theoretical I could use nestedSets, but because of too many tree changes it's not a good choice.
So I use materialized path, but I'm confused about the "TreePathSource".
The path contains not only IDs but something additional. But what? I have nothing to use for it and also I dont't want to use it. I need only a path containing all the parent node ids. How can I achieve this?
Also it would be great to have a direct root-reference. Not optimal but passable would be to cut the ID from the path and load manually.

@TreePathSource is the annotation for defining what field to use as the identifier value in the path. If you want to use IDs, then you can put this annotation on your $id property.

If your TreePathSource field is of type "string", then the primary key will be concatenated in the form: "value-id". This is to allow you to use non-unique values as the path source.

Could you tell me if you looked at any documentation to help you clarify? Just curious, to see if there's a way I can reorganize to make details like this easier to find. 😇

I've seen it here: https://github.com/Atlantic18/DoctrineExtensions/blob/v2.4.x/doc/tree.md
You're right, there is an important information missing. I've tried to set it on ID, but my IDs are of type UuidInterface and so I get the exception

In Annotation.php line 206:
Tree PathSource field - [id] type is not valid. It can be any of the integer variants, double, float or string in class - App\Entity\Example

    /**
     * @ORM\Id()
     * @ORM\Column(type="uuid", unique=true)
     * @ORM\GeneratedValue(strategy="CUSTOM")
     * @ORM\CustomIdGenerator(class="Ramsey\Uuid\Doctrine\UuidGenerator")
     * @Gedmo\TreePathSource
     * @Groups({"api"})
     */
    private UuidInterface $id;

Maybe it's not possible without changes in DoctrineExtensions.


Flat Web Jar Uberfire pom.xml Support

Dynamic Plugins now generates web jar files in maven build.
Jar Structure:

File Size:

Updated version after @csadilek requests:
Get hide of JS dir and assembly in the jar
https://gist.github.com/ederign/65742312bfee32947d069d9a82fc2c33
Make sure that it works with classifier:

Found it. That was happening because uberfire-dynamic-plugin-1.0.0-SNAPSHOT-jar-with-dependencies.jar contains references to all transitive dependencies. If we place them as "provided" https://gist.github.com/anonymous/9e95ec35b56c7b3db24259c32f82a473 we will get our clean fat jar.
Question is: Should we do this in all future web jar pom's? Should I add this to this PR?

@ederign I think this is a home-made "problem" as we want to allow for projects being both dynamic plugins and a static GWT modules. So, I think it's fine to set all dependencies to provided if  the goal is to just build a dynamic plugin. In most cases these projects will just be webjars anyway. If someone wants to build a webjar and a static module at the same time (using a single pom) then they're going to have live with the dependencies being brought in.

Yeah, this is the default Maven behavior. It will include the transitive dependencies for all the resulting artifacts, because they both share the same pom.xml.


pikmin command that pikmin

feel free to reject this lmfao I probably made it wrong

I think the only issue with this is that you didn't add the new file into the array at the start of main.py, I'll probably just change that if I can figure out how merging on the github web ui works lmao

you can also just put the command in the classiccommands.py file

thanks will do those things


crates.fyi ssl certificate expired

A few crates docs still point to to crates.fyi and the SSL certificate has expired so it no longer re-directs. It just gives an SSL error.
(I'm not sure if this is the correct project to address this)

Yes this is right place (and docs.rs is actually crates.fyi).
It is fixed now and thanks for reporting.


decoupled SessionDelete from current command shell

Instead of calling a shell command, persisted.delete() calls a builtin vim function to delete the session. This removes any possible incompatibilities between shells.

Great spot! Thanks for the PR.


Modify date time string to match the layout provided

When parsing a date time string Go requires that the layout provided exactly matches the date time string.
For example, if we pass the following format to our ToMilli function [Y0001]-[M01]-[D01] [H01]:[m01]:[s01]
Then the date-time string must be 2023-01-31 10:44:59.800
This is quite restrictive as we can't control how clients store their time strings.
I've added a few modifications so make the date-time string line up with the format provided.
I'll need to add more as we find test cases but I've added the following:

Whitespace is trimmed from both the layout and date time string to avoid any differences there
If either the date-time string contains a T and the layout doesn't then remove the T to keep them identical and add the same the other way around.
If our layout is just the date [Y0001]-[M01]-[D01] and our date time string contains the time then remove the time from the date time string.

1 merge conflict remaining


Update nodejs.yml

@shivamksharma Hey! Thank you for the PR! Could you please provide some information on what exactly it achieves?

Closing the PR due to inactivity.


Transparently compress and streaming support v2

Based on the work and needs of @jetsanix on #128
This creates a struct that receives a source io.Reader and a compression generator function.
This struct implements io.Reader, it reads from source, writes to the generated compressor and then returns the compressed data.
This should not break existing behavior, but should add support for compressing streams on the fly. All tests pass.
@marcosnils, @jetsanix what do you think?

That's ok.

@jetsanix @sschepens Golang I believe the first approach @jetsanix proposed more idiomatic, the code looks cleaner and the solution is simple. I don't believe that spawning a goroutine to process the pipe is a huge problem, I've seen this pattern in may places in the Go code: i.e:
https://golang.org/src/net/http/fs.go?h=Pipe#L227
In addition, I see that we're allocating a new buffer each time a read is made (https://github.com/franela/goreq/pull/129/files#diff-fc66e9def1c507b3c237b313c3195b01R25) which is not very performant as we could possibly reuse the same buffer for al Read calls.

We could pool buffers if we really need to, spawning a new goroutine is not performant either, we could also try to reuse the buffer which was passed to Read.
I know spawning a new goroutine and piping is more idiomatic, but I don't really think its necessary and should be slower that this.

What we really want is to transform reads from a reader into writes to the compressor which dumps data to another reader which we then read again.
I believe this simplifies that a lot and should be more performant.
@marcosnils I removed the buffer creation on every read

Just for the record @marcosnils this code is mostly copied from io.TeeReader https://golang.org/src/io/io.go?s=16109:16150#L493


New evac shuttle: Sparverius

About the PR

Added a new evacuation shuttle (that totally is not the kestrel from FTL you can trust me :trollface:)
This is my first foray into anything remotely related to mapping so if there's anything I need to change let me know.
Why / Balance

I feel like the current roster of evacuation shuttles is getting a little stale and could use a new addition.
Technical details

Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

add: Added a new evacuation shuttle that has a familiar layout.

I like it alot but I think med + sec need lockers, the important Engi stuff like the substation, grav gen and gyro need to be behind reinforced glass/windoors are the major ones
QoL I'd put airlocks near/in the windoors in the open area.
Booze vendor against the glass and move the dispenser along the table at the bar, increase the bridges size downwards and add more seats there and do something with or about the weird wing sections the thrusters are on

Consider adding a defib to the medbay, I think people often complain about some evacs missing them.
This might be a nitpick, but is there a reason as to why the distro buffer thingy has it's windows on adjacent tiles, whereas the waste has it's windows on the same tiles?
I find it a bit weird that both designs are used right next to eachother.

Agree with Djungelskog on the missing lockers

idk about the uranium glass

idk what exactly but something in it looks weird, also CL not really needed, and the shuttle isn't even used anywhere

I dont think this is needed at the moment, I have ideas for supporting alternate evacs for same maps eventually so dont write it off completely yet. Closing for now.


Calculates and sends discord notification for Cert test coverage more than 80%

Description
Calculates and sends discord notification that how many cert tests have coverage more than 80%.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

No objection, though I still don't find this meaningful :)


[PowerToys Run] Upgrade .NET Core 3.1 to .NET 6

Description of the new feature / enhancement
Upgrade PowerLauncher and all plugins to .NET 6
PowerToys Run and some plugins use Windows Runtime. It is not available in .NET 5 as before but can still be used with Target Framework Moniker option. With this option we have to specify the version of windows runtime. It should be windows10.0.18362.0 as it is the lowest version of windows we support. We should explorer other options here as well.
There is a bunch of obsolete APIs that should be replaced:

Assembly.GlobalAssemblyCache. It is used in exception formatted to show loaded assemblies. Should be easy to fix
Microsoft.Toolkit.Uwp.Notifications.NotificationActivator. It is used for toast notifications
Microsoft.Toolkit.Uwp.Notifications.DesktopNotificationManagerCompat. It is used for toast notifications
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter

Parent issue is https://github.com/microsoft/PowerToys/issues/8650

@mykhailopylyp
with Microsoft.Toolkit.Uwp.Notifications removed registry key can also be removed.
https://github.com/microsoft/PowerToys/blob/e762bfa3481b27ed938beef7956d0c6f15aefa4c/installer/PowerToysSetup/Product.wxs#L1073

This needs the new pipeline work before we can migrate so moving to 0.55

@stefansjfw  is this work done with the .net 5 upgrade?

@crutkas yes


[feature]: Spring AI Alibaba FunctionCalling Impl for Gitee ToolKit

我们鼓励使用英文，如果不能直接使用，可以使用翻译软件，您仍旧可以保留中文原文。另外请按照如下要求提交相关信息节省社区维护同学的理解成本，否则该讨论极有可能直接被忽视或关闭。
We recommend using English. If you are non-native English speaker, you can use the translation software. In addition, please submit relevant information according to the following requirements to save the understanding cost of community maintenances, otherwise the discussion is very likely to be ignored or closed directly.
Which Component
Third: Gitee ToolKit
Describe the solution you'd like
GetIssue API、Pull Request API、SearchRepo API
#218

I'd like to give it a try


Missing dependency:  tether-drop

I'm submitting a ...

[x] Bug report
[ ] Feature requestdd
[ ] Question / Support request

If you don't send bug report, remove sections below
For bug report please include this information:
Software Versions

Grafana
Zabbix
Grafana-Zabbix Plugin

4.6.0-beta2
3.0.x
3.5.1

What did you do?
Load my old configuration that uses the zabbix trigger panel
What was the expected result?
Loaded panel
What happened instead?
404 error for sub part
This is a default docker container grafana/grafana.
Apparantley this is fixed in master, but not quite easily available yet. Can we get a release of grafana-zabbix rolled out so a default grafana install stays working?

That fixed in 630dd176595f824535a1bc299245ff2b531d4a18 and will be in next release soon.


MINOR: Set mock correctly in RocksDBMetricsRecorderTest

With a nice mock in RocksDBMetricsRecorderTest#shouldCorrectlyHandleHitRatioRecordingsWithZeroHitsAndMisses() and RocksDBMetricsRecorderTest#shouldCorrectlyHandleAvgRecordingsWithZeroSumAndCount() were green although getTickerCount() was never called. The tests were green because EasyMock returns 0 for a numerical return value by default if no expectation is specified. Thus, commenting out the expectation for getTickerCount() did not change the result of the test.
This commit changes the mock to a default mock and fixes the expectation to expect getAndResetTickerCount(). Now, commenting out the expectation leads to a test failure.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Call for review: @Luizfrf3

Test failures are unrelated and known to be flaky.


RFC: Moving ApprovedHosts to IList instead of IEnumerable

Request for comment @floyd-may
I'm looking at changing ApprovedHosts in FakeAuthOptions to IList instead of IEnumerable.
This is for parity with the Claims collection. (Also IList) to make the set up in StartUp easier (provides .Add()) Everything else stays the same and all tests seem to pass.
Branch: https://github.com/calebjenkins/FakeAuth/tree/dev/feature-13-evaluating-2.0

completed.


[BUG] Build fails due to missing asset file

The missing asset file (#731) was fixed. However, now we can see
https://github.com/raspberrypi/rpicam-apps/blob/f3fab87628d55d22f7e8ebe12729ecc5e0e8eda1/post_processing_stages/hailo/meson.build#L50
I think this line should be removed.

Sorry, this got added by mistake.  I've now removed it.


Add files via upload

URL
http://www.leedsbeckett.ac.uk
URL for Course
https://www.leedsbeckett.ac.uk/courses/computer-science-bsc/
Currently students have access as domain is registered as student.leedsbeckett.ac.uk
new file will allow staff access via leedsbeckett.ac.uk

@p-i-999983 First stage of verification passed, official domain is leedsbeckett.ac.uk as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@p-i-999983 Pull request merged. Thank you.


DATAJDBC-465 BasicJdbcConverter supports Constructor Instantiate for classes with the @Transient property.

resolves DATAJDBC-465

Prefer use @PersistenceConstructor exclude @Transient property


Support for long range off-mesh connection support

This lifts the restriction for off-mesh connections for tiled navigation meshes
where the two endpoints for a connection must be located in the same tile, or in adjacent tiles.
This is done by connection the off-mesh links AFTER all tiles have been built.
You may find more detail on: https://github.com/recastnavigation/recastnavigation/issues/195#issuecomment-198132561

Detour only stores off mesh connection in the starting tile. This means that if you have an off mesh connection pointing from tile A to B and you have loaded tile A first it will not be able to connect the off mesh connection when tile B is loaded. This can potentially give you some inconsistent results depending on the tile load order, should you choose to go with the "find exit tile" solution.
A potential fix to that problem could be to store off mesh connections in both tiles.

This "fix" is only crudely worked on as this issue suggests; an impropmtu fix.
https://github.com/recastnavigation/recastnavigation/issues/586#issue-1465066364
More specifically, the change was only made to serve as a showcase, and although this should be working as intended with building the whole tile mesh, the same may not be applied to:

Building the tile mesh partially, i.e. building only one tile at a time,
& loading the tile mesh from a binary file.

To make it work for cases above, further exploration on this method of approach should be necessary.

That should be easy to overcome, one simply would need to create a list of all unlinked off-mesh connections, as said in the comment below:
https://github.com/recastnavigation/recastnavigation/issues/477#issuecomment-851047403
The only reason for my commit disabling connectExtOffMeshLinks() at said position, is that the behavior of two functions connectExtOffMeshLinks() and connectGlobalOffMeshLinks() are almost identical to each other.
As for the benefits, I'm not so sure. For all I know, it's just a matter between linking the tiles during the tile loading pass, or after said pass.

This is excellent, are you planning an implementation that supports the tile cache (Sample_TempObstacles) as well? I'm not sure how to integrate this into the tile cache.

Some feedback on this.
1)It works
2)The documentation for the function is incorrect in my understanding, target is actually where the starting point is, and tile is the end point. It's reverse what you would expect.
3)The sample connection establishment is extremely slow for meshes with large amounts of tiles
First I moved it to be a member function of dtNavMesh, as it's something I think should be supplied and simply called by anyone using the library.
I then focused on optimizing the function call.
I altered and rearranged the checks, continuing the loop if
if (target->header->offMeshConCount == 0)
continue

this was the first major speedup as there's no point looping thru the X range if there's no offmesh connections in the target tile.
I then added a new variable to the dtMeshTile class unconnectedOffMeshCount, and during tile construction set this to the header->offMeshConCount.
This value would be decremented inside the end of connectGlobalOffMeshLinks and connectExtOffMeshLinks.
This value is also checked, at the end of dtAddtile and if it has a value > 0 then m_hasOffMesh is set to true.
This gives a huge performance benefit for meshes where there are only connections inside the same tile that we don't have to scan the entire tile range to find start/end connections.
Further possible improvements:
It maybe worthwhile to keep the neighbor checks in, as searching neighbors is faster then scanning the entire tile range.
It maybe worthwhile to import the rcVector class and add the tiles where unconnectedOffMeshCount > 0 that way we don't scan the entire tile range
It maybe faster to use a navmeshquery to find the what the end tile would be for a given off mesh connection, rather then scanning all the given tiles.
void dtNavMesh::ConnectGlobalOffMeshLinks()
{
	if (m_hasOffMesh)
	{
		const int tileNum = this->getMaxTiles();
		for (int y = 0; y < tileNum; ++y)
		{
			const auto target = this->getTile(y);

			if (!target->data)
				continue;

			if (target->unconnectedOffMeshCount == 0)
				continue;

			for (int x = 0; x < tileNum; ++x)
			{
				if (x == y)
					continue;

				const auto tile = this->getTile(x);

				if (!tile->data)
					continue;

				this->connectGlobalOffMeshLinks(tile, target);

				if (target->unconnectedOffMeshCount == 0)
					break;

			}
		}
	}
}

So I played around with this a bit more
I ported over rcVectorBase and renamed to dtVectorBase etc, and during the dtnavmesh::addtile, checked if header->offMeshConCount > 0 added it to the vector.
Then a simple function

void dtNavMesh::ConnectGlobalOffMeshLinks()
{
	if (m_hasOffMesh)
	{
		for(const auto target : tilesWithOffmeshConnections)
		{
			GlobalOffMeshLinks(target);
		}

}

and
smashed together the logic from dtNavMeshQuery::queryPolygons and the previous function create the following:
void dtNavMesh::GlobalOffMeshLinks(dtMeshTile* target)
{
	if (!target)
		return;

	for (int i = 0; i < target->header->offMeshConCount; ++i)
	{
		dtOffMeshConnection* targetCon = &target->offMeshCons[i];

		dtPoly* targetPoly = &target->polys[targetCon->poly];
		// Skip off-mesh connections which start location could not be connected at all.
		if (targetPoly->firstLink == DT_NULL_LINK)
			continue;

		const float ext[3] = { targetCon->rad, target->header->walkableClimb, targetCon->rad };

		float bmin[3], bmax[3];
		dtVsub(bmin, &targetCon->pos[3], ext);
		dtVadd(bmax, &targetCon->pos[3], ext);

		// Find tiles the query touches.
		int minx, miny, maxx, maxy;
		this->calcTileLoc(bmin, &minx, &miny);
		this->calcTileLoc(bmax, &maxx, &maxy);

		static const int MAX_NEIS = 32;
		dtMeshTile* neis[MAX_NEIS];

		for (int y = miny; y <= maxy; ++y)
		{
			for (int x = minx; x <= maxx; ++x)
			{
				const int nneis = this->getTilesAt(x, y, neis, MAX_NEIS);
				for (int j = 0; j < nneis; ++j)
				{
					auto tile = neis[j];
					// Find polygon to connect to.
					const float* p = &targetCon->pos[3];
					float nearestPt[3];
					dtPolyRef ref = findNearestPolyInTile(tile, p, ext, nearestPt);
					if (!ref)
						continue;
					// findNearestPoly may return too optimistic results, further check to make sure.
					if (dtSqr(nearestPt[0] - p[0]) + dtSqr(nearestPt[2] - p[2]) > dtSqr(targetCon->rad))
						continue;
					// Make sure the location is on current mesh.
					float* v = &target->verts[targetPoly->verts[1] * 3];
					dtVcopy(v, nearestPt);

					// Link off-mesh connection to target poly.
					unsigned int idx = allocLink(target);
					if (idx != DT_NULL_LINK)
					{
						dtLink* link = &target->links[idx];
						link->ref = ref;
						link->edge = (unsigned char)1;
						link->side = 0xff;
						link->bmin = link->bmax = 0;
						// Add to linked list.
						link->next = targetPoly->firstLink;
						targetPoly->firstLink = idx;
					}

					// Link target poly to off-mesh connection.
					if (targetCon->flags & DT_OFFMESH_CON_BIDIR)
					{
						unsigned int tidx = allocLink(tile);
						if (tidx != DT_NULL_LINK)
						{
							const unsigned short landPolyIdx = (unsigned short)decodePolyIdPoly(ref);
							dtPoly* landPoly = &tile->polys[landPolyIdx];
							dtLink* link = &tile->links[tidx];
							link->ref = getPolyRefBase(target) | (dtPolyRef)(targetCon->poly);
							link->edge = 0xff;
							link->side = (unsigned char)(0xff);
							link->bmin = link->bmax = 0;
							// Add to linked list.
							link->next = landPoly->firstLink;
							landPoly->firstLink = tidx;
						}
					}
				}
			}
		}
	}
}

this new method is exceptionally fast, two orders of magnitude faster for meshes with large tile counts, and handles all connections just fine so I even went and disabled the self tile check inside addtile, so that all offmesh connections are handled thru this one function.
Concerns that are outside my usecase:
Removing tiles and then readding.

bump, this would be great to have


Lab2b progress update 01 and 05

Due date submission, currently finished part1 to part 6 and part 10, part 7-9 are in progress


Support for socket.io - 3.0.1

Ubuntu 20.04
socket.io: 3.0.1
socket.io-redis: 6.0.0
node - v14.15.0
In this example createAdapter is undefined
import { createAdapter } from 'socket.io-redis';

createAdapter('localhost:6379')

In this example: Error: timeout reached while waiting for remoteJoin response
import redisAdapter from 'socket.io-redis';

io.adapter(redisAdapter({ host: 'localhost', port: 6379 }));
const adapter = this.io.of('/').adapter;
adapter.remoteJoin('my-id', 'room');

In this example: TypeError: socket_io_redis_1.createAdapter is not a function
import redisAdapter from 'socket.io-redis';

io.adapter(redisAdapter.createAdapter(''localhost:6379''));

@naturalfreak same with me.

Your 2nd option should work:
import redisAdapter from 'socket.io-redis';

io.adapter(redisAdapter({ host: 'localhost', port: 6379 }));
const adapter = this.io.of('/').adapter;
adapter.remoteJoin('my-id', 'room');

I added an example here: https://github.com/socketio/socket.io-redis#es6-modules
Regarding the Error: timeout reached while waiting for remoteJoin response error, it might indicate that there is no socket found with the given id. Could you please check if that's the case?

Yes this is the case, after update to version socket.io-redis 6.0.1
Error: timeout reached while waiting for remoteJoin response
import { Server } from 'socket.io';
import { createAdapter } from 'socket.io-redis';
import { RedisClient } from 'redis';
import { Socket } from 'dgram';

const io = new Server(httpserver, {
   serveClient: false
});

const pubClient = new RedisClient({ host: 'localhost', port: 6379 });
const subClient = pubClient.duplicate();

io.adapter(createAdapter({ pubClient, subClient }));
io.use(somefunction);

function somefunction(socket: Socket, next: Function) {
      const query: { [key: string]: any } = socket.handshake.query || {};
      const { somekey } = query;
      const adapter  = this.io.of('/').adapter;

      return adapter.remoteJoin(socket.id, somekey).catch((error) => {
        console.log(error)
      }).finally(() => {
        next();
      });
 }

in socket.io-redis/dist/index.js
socket is undefined
this.nsp.sockets - Map(0) {}
    remoteJoin(id, room) {
        const requestId = uid2(6);
        const socket = this.nsp.sockets.get(id);
        console.log(socket)
        console.log(this.nsp.sockets)

        if (socket) {
            socket.join(room);
            return Promise.resolve();
        }
        const request = JSON.stringify({
            requestId,
            type: RequestType.REMOTE_JOIN,
            sid: id,
            room,
        });
        return new Promise((resolve, reject) => {
            const timeout = setTimeout(() => {
                if (this.requests.has(requestId)) {
                    reject(new Error("timeout reached while waiting for remoteJoin response"));
                    this.requests.delete(requestId);
                }
            }, this.requestsTimeout);
            this.requests.set(requestId, {
                type: RequestType.REMOTE_JOIN,
                resolve,
                timeout,
            });
            this.pubClient.publish(this.requestChannel, request);
        });
    }

The problem is not caused by socket.io-redis, but from this part of code.
Problem is resolved.
   return adapter.remoteJoin(socket.id, somekey).catch((error) => {
        console.log(error)
      }).finally(() => {
        next();
      });

Sorry, I'm not sure that I totally understand your use case.
In your example, you should be able to replace:
adapter.remoteJoin(socket.id, somekey);

by a classic
socket.join(somekey);

Don't you?
The remoteJoin() method is useful when you only have access to the Socket ID but not to the Socket instance (when the Socket exists on another node).

I'm using multiple servers with nodejs clusters and redis clusters, this is just a small example of the code, with one nodejs cluster server. So I should manage all connections from every nodejs instance.

Closed due to inactivity, please reopen if needed.


httpOnly cookie set in the front-end not being sent to the server

Hi all, I'm trying to set a cookie in the front-end with httpOnly=true to store the authentication token. The problem is that it's not being sent to the server in a request that should include it, while other cookie set with httpOnly=false is included. Here is how I'm setting both cookies:
let cookies = new Cookies();
cookies.set('token', token, {httpOnly: true, secure: false, path: '/'});
cookies.set('user', JSON.stringify(user), {httpOnly: false, path: '/'});

The request is performed using axios setting withCredentials=true:
const {data: opinions} = await axios(
   {
        method: 'get',
        baseURL: process.env.REACT_APP_API_URL,
        url: process.env.REACT_APP_API_OPINIONS,
        withCredentials: true,
   });

As I said before, the cookie 'user' is being sent. The request is a CORS request with the same IP but different port. I also tried setting the domain property in the cookies.set call with no success. Any idea?
Thanks.

yes, i have the same issue.

@notsag-dev have you fix this problem?

Unfortunately we haven't, for now we aren't using the httpOnly option which is not a good idea. An option could be setting the cookie on the server side, but I don't think you can do that for a CORS request anyways, even if you have control over the API. Will let you know if we find a solution for this.

@eXon What's the point of httpOnly being a part of CookieSetOptions if you can't set it from the client side to begin with?


Potential bug with gradient clipping when using gradient accumulation in examples

❓ Questions & Help
Hi developpers,
Thanks for the awesome package. I have a question related to the recent major from pytorch_pretrained_bert to pytorch_transformers.
Gradient clipping used to be done inside the optimizer BertAdam and is now done at the same time as gradient computation in run_squad.py : https://github.com/huggingface/pytorch-transformers/blob/7729ef738161a0a182b172fcb7c351f6d2b9c50d/examples/run_squad.py#L156
It seems to me like the first accumulated gradients might get clipped several times hence giving more weight to last accumulated gradients :
As an example of my thought here is what happens if we compare what we get if we clip to 1 at each accumulation step instead of at the end of the accumulation for the two gradients [2,0] and [0,2]:
In [1]: import torch
   ...: from torch.nn.utils import clip_grad_norm_
   ...: from torch.autograd import Variable
   ...:
   ...: x = Variable(torch.FloatTensor([[0],[0]]), requires_grad=True)
   ...:
   ...: grad1 = torch.FloatTensor([[2],[0]])
   ...: grad2 = torch.FloatTensor([[0],[2]])
   ...:
   ...: x.grad = grad1
   ...: clip_grad_norm_(x, 1)
   ...: print(x.grad)
   ...:
   ...: x.grad += grad2
   ...: clip_grad_norm_(x, 1)
   ...: print(x.grad)
   ...:
   ...: grad1 = torch.FloatTensor([[2],[0]])
   ...: grad2 = torch.FloatTensor([[0],[2]])
   ...:
   ...: x.grad = grad1 + grad2
   ...: clip_grad_norm_(x, 1)
   ...: print(x.grad)
   ...:
   ...:
tensor([[1.0000],
        [0.0000]])
tensor([[0.4472],
        [0.8944]])
tensor([[0.7071],
        [0.7071]])```

We can see that clipping  at each step biased gradient towards the gradient of the second batch:
`python tensor([[0.4472], [0.8944]])`
Instead of getting the balanced expected result : `python tensor([[0.7071], [0.7071]])`

So either I missed something or I think the fix would be to simply move gradient clipping before the call to the optimizer

Hi, indeed we could move the gradient clipping just before the call to the optimizer.
Do you want to send a PR to fix that on run_squad and run_glue?

Hi, was this ever implemented? I think it makes the most sense to clip right before an optimizer step. Right now it's implemented in two different ways in run_lim_finetuning and run_glue


Add psort output to plaso plugin

Output in CSV format.  Also Create new evidence type for PlasoCSVFile.

Actually, we probably want a separate task for this because we can also use the functionality to upload directly to the timesketch backends.


Fade proxy not ready

Pls Help what this ip for ? How can i get this ip ?
_ip = client.DownloadString("https://www.muzari.com/pb/server.txt");
flashEmbed.LoadMovie(0,_ip);

That IP was used for a license server. It's used to create and read DarkOrbit packets, so you need to set it up yourself from the source code or move this logic to PolskaBotCore (you can't just skip it).
There is a source code of license server: https://github.com/PolskaBot/PolskaBotRemote
Keep in mind the code wasn't updated for 4 years and I'm not sure if current DarkOrbit protocol is any similar to what we used to use.

Okay,Thanks man. I'm going to try.


DropDownButton Flyout open/close callback

Please implement onOpen and onClose of Flyout widget in DropDownButton.

Fixes on https://github.com/bdlukaa/fluent_ui/commit/91089e30a53837ac7c84960355ac7a334b162b26


fix the apiVersion bracket issue

Fix the issue #29

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


Add Datasources to the Get Command

this simply adds datasources as an option for the Get command, in addition to the existing views and workbooks.

re-doing without months of existing commits 🤦🏻♂


Compass / Magnotometer

HeadingTrueNorth  and HeadingMagneticNorth cannot be the same value. This was taken from the SF Bay Area which has a magnetic declination of 13D44M. This was taken on a Lumia 920 running 10512 firmware 3051.50009.1425.2001 hardware version <IP_ADDRESS>.

Thanks for the comment. When location is not available, the declination defaults to 0 degrees, which is what you are seeing. Can you check if the 920 is able to get location?

Thank you for the input. The 920 does not have a sim card, but I am able to get location. The app Raw Compass data and Jack of all Tools apps both are able to show Mag north and true north. This appears to be only in the Universal App that is not getting the location. Interesting, are you indicating that the Magnotometer relies on the GPS/AGPS, and if so dos it need to be running? I know that the 920 lacks SensorCore which does do a background GPS, but that does not explain why the old app are correctly getting the right data and the sample app here is not.

Hi Rcroeder,
I am able to retrieve Magnetic North and True North using the Universal SensorInfo App (published on the Windows Store) with Location and WIFI enabled on my Surface 3 Pro. Please let me know if you are still running into this issue. Which Universal App were you seeing this on BTW?
Thanks!


Risk Scoring Module Enhancements

Adding additional capabilities to the risk scoring module

Fixes #307
Fixes #310
Fixes #309
Fixes #308
Fixes #313
Fixes #306
Fixes #317

Deploy this PR

I should be able to test it Wednesday.


one place were csvs are parsed

see https://github.com/lsst-sssc/ssoforcedphot/pull/11#discussion_r1697232900

Okay. I've transferred the entire query_from_csv method from each service to ephemeris_client. I also commented out the unused parts of the unit tests.


Add missing MekanismFluids import, fixes #4300

Fix a build error caused by missing import, #4300

#4297


Corona-Warn-App 1.11 is showing wrong text if no exposures are detected (all languages but German)

Avoid duplicates

[x] Bug is not mentioned in the FAQ
[x] Bug is not already reported in another issue

Technical details

Device name: iPhone 6s & iPhone XR
iOS Version: 14.4
App Version: 1.11.0

Describe the bug
Version 1.11 of the Corona-Warn-App is showing "Exposure with low risk on 0 days" (in all languages but German).
Steps to reproduce the issue

Set f.e. English as language
Open CWA
See wrong text on home screen

Expected behaviour
The text should be, like the German text, "No exposures" in the respective languages.
Possible Fix
Change the text
Additional context
Screenshots:
German:

English:

@MikeMcC399 could you check Android please?

@MikeMcC399 could you check Android please?

EXPOSUREAPP-4893(https://jira-ibs.wbs.net.sap/browse/EXPOSUREAPP-4893)

EXPOSUREAPP-4893(https://jira-ibs.wbs.net.sap/browse/EXPOSUREAPP-4893)

@dsarkar did you check the behavior under Android?

@dsarkar did you check the behavior under Android?

What does this mean actually? I am seeing this since morning!

What does this mean actually? I am seeing this since morning!

@cricketsamya
This means that everything is ok, no exposures have been recorded.

@cricketsamya
This means that everything is ok, no exposures have been recorded.

@Ein-Tim

@dsarkar did you check the behavior under Android?
Edit: @MikeMcC399 could you check Android please?

I can't see any problem in CWA Android 1.11.0
The text in English is "No exposures", corresponding to the German "Keine Risiko-Begegnungen".

@Ein-Tim

@dsarkar did you check the behavior under Android?
Edit: @MikeMcC399 could you check Android please?

I can't see any problem in CWA Android 1.11.0
The text in English is "No exposures", corresponding to the German "Keine Risiko-Begegnungen".

@cricketsamya what exactly confused / worried you?
Was it the text 'Confirmed New Infections' at the bottom of your screenshot?
Actually, I can imagine that some users could misunderstand this text and think that they have a confirmed infection.
Maybe this statistics should better be moved to a separate card wirh a clear title?

@ndegendogo Exposures with low risk on zero days is a wrong translation.
Second the cards for the stats may be can moved to a stats screen??

@cricketsamya

Exposures with low risk on zero days is a wrong translation.

Sure, you are right.

Second the cards for the stats may be can moved to a stats screen??

Exactly this was my thought when I saw your screenshot. imo it can be easily misunderstood.
(I just wanted a second opinion on this, thanks!)

Looks like the bug is in file cwa-app-ios/src/xcode/ENA/ENA/Resources/Localization/XX.lproj/Localizable.stringsdict, key Home_Risk_Low_Number_Contacts_Item_Title.
Commit 0f22dc changed <string>No exposures</string> to <string>Exposures with low risk on %u days</string>. For english language this change was reverted in commit 71e73a.
Anyway, commit 71e73a only addressed English language. Furthermore commit 0f22dc made further changes in Localizable.stringsdict that look suspicious to me:

<string>Update in %02u:%2$#@seconds@ seconds</string> changed to <string>Update in %02u:%2$#@seconds@ minutes</string>
<string>Exposure logging has been active for less than one day. An exposure check can only be reliable if exposure logging is permanently activated.</string> changed to <string>Exposure logging has been active for %u days. An exposure check can only be reliable if exposure logging is permanently activated.</string>

Can someone please review entire commit 0f22dc?

Thanks from my side too @OliverRM.
So seems like at least for English the fix https://github.com/corona-warn-app/cwa-app-ios/commit/71e73ad503fb6fdb0fa4610e4953de39b495471f is included in this PR which is merged into the release 1.12.x branch.
I will keep on monitoring the incoming translation deliveries to see if they fix this for the other languages too (still it would be nice if @dsarkar could keep us in the loop here 🙂)
Besides of that the commit https://github.com/corona-warn-app/cwa-app-ios/commit/0f22dc1f58ed6cb5a18e998ae1574a445b9ce015 looks ok to me.
It was merged into the release 1.11.x branch so these changes are already live.

@Ein-Tim Sure, trying my best to keep you and the community in the loop! ;-)

#1910 Fixes this, I will leave this issue open until the changes are live (version 1.12).
@dsarkar Could you lable this Fix 1.12.
Thank you ❤

@OliverRM
Regarding your comment about commit https://github.com/corona-warn-app/cwa-app-ios/commit/0f22dc1f58ed6cb5a18e998ae1574a445b9ce015, the changes in this commit will be reverted by #1916 (for the quoted English change see this.
Thanks for your help here!

Looks good, as far as I can see all changes of 0f22dc1 I pointed out have been reverted. That leaves only one question open:
Looking at the following section of Localizable.stringsdict
	<key>Home_Risk_Status_Counter_Label</key>
	<dict>
		<key>NSStringLocalizedFormatKey</key>
		<string>%#@minutes@%#</string>
		<key>minutes</key>
		<dict>
			<key>NSStringFormatSpecTypeKey</key>
			<string>NSStringPluralRuleType</string>
			<key>NSStringFormatValueTypeKey</key>
			<string>u</string>
			<key>zero</key>
			<!--Plural form for ZERO.-->
			<string>Update in %02u:%2$#@seconds@ seconds</string> <!-- HERE -->
			<key>one</key>
			<!--Plural form for ONE.-->
			<string>Update in %02u:%2$#@seconds@ minute</string>
			<key>few</key>
			<!--Plural form for FEW.-->
			<string>Update in %02u:%2$#@seconds@ minutes</string>
			<key>many</key>
			<!--Plural form for MANY.-->
			<string>Update in %02u:%2$#@seconds@ minutes</string>
			<key>two</key>
			<!--Plural form for TWO.-->
			<string>Update in %02u:%2$#@seconds@ minutes</string>
			<key>other</key>
			<!--Plural form for OTHER.-->
			<string>Update in %02u:%2$#@seconds@ minutes</string>
		</dict>
		<key>seconds</key>
		<dict>
			<key>NSStringFormatSpecTypeKey</key>
			<string>NSStringPluralRuleType</string>
			<key>NSStringFormatValueTypeKey</key>
			<string>u</string>
			<key>one</key>
			<!--Plural form for ONE.-->
			<string>%02u</string>
			<key>zero</key>
			<!--Plural form for ZERO.-->
			<string>%02u</string>
			<key>few</key>
			<!--Plural form for FEW.-->
			<string>%02u</string>
			<key>many</key>
			<!--Plural form for MANY.-->
			<string>%02u</string>
			<key>two</key>
			<!--Plural form for TWO.-->
			<string>%02u</string>
			<key>other</key>
			<!--Plural form for OTHER.-->
			<string>%02u</string>
		</dict>
	</dict>

Commit 0f22dc1 changed seconds to minutes in line <!-- HERE -->. c4f6c61 reverted this change.
First I thought it should be seconds as the variable is called seconds. That is why I pointed it out in my comment. But then the following lines should be seconds two. Only now I realised that it all belongs to the key minutes. Maybe it actually was right to change it to minutes? Or should it not actually be something like Update now?
Same applies to other languages. German wasn't affected by the commits but same questions apply.

Can confirm that this has been fixed in 1.12.1:

I will close this now, @OliverRM please open a new issue if you see any wrong text in version 1.12.1.
Thanks!

@Ein-Tim Thanks!

Shows the message as expected! 👍🏼


Support RADIUS integration for user authentication

Inspired by #108 the idea is to add RADIUS authentication and authorization integration to the frontend.
The integration would use pyrad (https://github.com/pyradius/pyrad) as RADIUS client

Hello. I have uploaded a PR with the support.
Feel free to review.