OIDC Connector support

This set of changes implements external OIDC connector support within Velum.  It's based upon the LDAP connector, and should incorporate the majority of the relevant lessons learned from that implementation.

Does it make sense to have this Validate button if the validation happens for both Save and Validate submissions? The only difference is that when clicking on Save besides validating it also tries to save the data in the database. Why do we need this additional step if we are not doing anything special?

Does it make sense to have this Validate button if the validation happens for both Save and Validate submissions? The only difference is that when clicking on Save besides validating it also tries to save the data in the database. Why do we need this additional step if we are not doing anything special?

The button is primarily there for consistency with the LDAP provider.  Personally, I kind of like that it gives the user some more explicit indication that we are going to ensure that their values make sense before saving.  But it is technically redundant.
Long term, we discussed potentially adding an additional authentication step to validation, where we would connect to the OIDC Provider using the provided client information and attempt to do a real authentication with a real user.  Right now, minimal validation only verifies that the issuer matches the provider URL.  In that possible future state, we would want to be able to isolate the interactive authentication from the database validation.  Keeping the validate button in place gives the user a consistent experience (normally, they won't know that "save" actually revalidates since they can't click the save button until data is valid) while making it easier to integrate this enhanced validation later.

What's the right place to record the desired change to the LDAP connector to match 048a640 (there are three hr+h4 instances)?  Would that be an issue opened in Github?

The validate button is a technical redundancy, to be sure, but it maintains user-visible workflow consistency with the LDAP interface already deployed.  As such, I'm pretty strongly inclined to at least initially make new stuff look the same as existing.
I'd suggest that integrating validation into the save process from a UI perspective is probably better done in a future change which updates both interfaces simultaneously, rather than mixing new and old approaches in the same build.  Maybe at the same time as those hrs are removed from LDAP. :)

The validate button is a technical redundancy, to be sure, but it maintains user-visible workflow consistency with the LDAP interface already deployed. As such, I'm pretty strongly inclined to at least initially make new stuff look the same as existing.

The consistency you are talking about is both pages having a button that validates something, right? Because both buttons do different things. In the LDAP, it doesn't refresh the page and validates the connection based on the input fields. In the OIDC, it refreshes the whole page (you probably don't notice because it's localhost and your resolution is large and the form small), it validates the reachability of the OIDC provider based on a single field and also validates any data from the model that will be saved in the database.
Are you still sure that there's consistency between both pages?
If you really want to have a button to validate/check the provider reachability, I would move it next to the provider url input field and rename it to Check reachability. When the user clicks on it, the check would happen without refreshing the page just like the LDAP. Otherwise I would just remove it and rely on the Save button as it is. I think that makes much more sense but it's probably out of the scope for this PR

I'd suggest that integrating validation into the save process from a UI perspective is probably better done in a future change which updates both interfaces simultaneously, rather than mixing new and old approaches in the same build. Maybe at the same time as those hrs are removed from LDAP. :)

You mean "integrating validation into the save process" for the LDAP page, right? Because for OIDC it's already done and we should stick with that IMO.

The consistency you are talking about is both pages having a button that validates something, right?

Correct: I'm referring to consistency in user workflow.  Fill out form, click validate, click save.  Granted the OIDC page does reload, but I'm inclined to think the different buttons are more likely to cause a user to think "why isn't this tested like LDAP is?" while they're less likely to notice (or at least think much about) a reload.
Speaking of which, perhaps the validate button on OIDC should be changed to "Test Connection" to match LDAP.  Whoops. :)

You mean "integrating validation into the save process" for the LDAP page, right? Because for OIDC it's already done and we should stick with that IMO.

Yes - I personally think validating server-side is the right decision in both cases.  Honestly, moreso with LDAP, since there's no reason that the web client needs to reach the LDAP server to begin with; it's within reason that an LDAP auth server might be firewalled and not accessible by desktops.  With OIDC, the browser will almost certainly also have to reach the provider at some point so the user can auth.
To that end, when that future PR which moves LDAP validation server-side happens, it would be trivial to both remove this one's enabled attribute from the save button & remove the validate button entirely at the same time, keeping both pieces visually congruent with minimal effort.

PR #647 seems to have introduced a CodeClimate failure, which slipped in here when I rebased on current master. So those commits (084b072 and the two following) have been un-merged from this branch to keep things clean.

IIRC rebasing won't show past commits unless the target branch doesn't have them. What I usually do to rebase is:
# supposing `upstream` is the name of the main repository
$ git fetch upstream
$ git rebase upstream/master
$ git push origin my-branch --force

Hope it helps! :wink:

IIRC rebasing won't show past commits unless the target branch doesn't have them. What I usually do to rebase is:

That's precisely what I did. :)  The relevant commit was merged into master after this PR was opened, so they weren't originally in my branch.  Since they merged (and were rebase -i drop'd) cleanly, I decided to leave them removed from this branch for now to prevent muddying the water re: whether the checks fail because of this changeset or something else.  I figure I'll (re)rebase on master at the end when I squash the commits before merge.

When I fill an invalid provider url I get duplicated error message

The duplicated error message is because the model was using the http_url validator, and the OIDC connection test also validates that it's a http url first.  So it was validating twice, causing the message to be added twice.  I saw that in testing but thought I remembered fixing it.  Guess not. :) Thanks.
Fixed (in 8e02aa8) by removing the explicit http_url validator on the  provider URL's field in the model.

So, what remains to get this merged in?  Just remove the branch references in the OIDC testing document and collapse all the commits?

A validators folder exists, just realized that the validators created here are not there. Any special reason for that?
I'm still not agreeing with the unnecessary test/validate button workflow and the VCR line wrapping the DatabaseCleaner call.

A validators folder exists

Not sure about the validators; the few examples I looked at said that custom database validators go in the concerns folder, so I didn't ask questions. :)  Looking at https://www.sitepoint.com/a-quick-study-of-the-rails-directory-structure/ and a few other similar sites, the controllers/concerns directory is well-known for this general sort of purpose (locating common code used by controllers).  On the other hand, validators not only isn't something I can find documented outside of one now-deleted blog post, it's located away from the data controllers that use it.  I guess the better question might be "why is there a validators directory?" :)
I don't have a huge problem with moving the files, as the name "concerns" doesn't make a lot of sense to me, but it'd be nice if there was some definitive document or similar guidance on the subject.

I'm still not agreeing with the unnecessary test/validate button workflow

I'm in agreement with ultimately changing this to only "validate on save", but I'd really rather see that in a separate PR where the LDAP connector is changed the same way, and making that LDAP change concurrently would be outside the scope of this PR.

and the VCR line wrapping the DatabaseCleaner call.

I started to change that, but the only way I can see to make that happen is to disable database validation on the factory by default.  I decided not to use that solution, because anyone overriding any parameter in a factory call elsewhere would also need to be aware of the "not validated by default" nature.  Normally, one would expect the database validation to happen when using a database record-generating factory, I think, so that would be a bad solution.
The other option that I thought of is to explicitly pick the dex_connector_oidc factory out of the list of factories and override how it's called in the cleaner definition.  But that, to me, would be quite a bit uglier than the VCR wrapper.  I'm very much open to discussing any other solution.  I don't really like the way it is, but it's the best I've come up with so far.

Not sure about the validators; the few examples I looked at said that custom database validators go in the concerns folder, so I didn't ask questions. :) Looking at https://www.sitepoint.com/a-quick-study-of-the-rails-directory-structure/ and a few other similar sites, the controllers/concerns directory is well-known for this general sort of purpose (locating common code used by controllers). On the other hand, validators not only isn't something I can find documented outside of one now-deleted blog post, it's located away from the data controllers that use it. I guess the better question might be "why is there a validators directory?" :)

Because we want to group all the validators in one place. There are other approaches of grouping but the one we've been using is based on functionality.

I don't have a huge problem with moving the files, as the name "concerns" doesn't make a lot of sense to me, but it'd be nice if there was some definitive document or similar guidance on the subject.

Explanation below extracted from [0]:

All subdirectories of app in the application and engines present at boot time. For example, app/controllers. They do not need to be the default ones, any custom directories like app/workers belong automatically to autoload_paths.

[0] https://guides.rubyonrails.org/autoloading_and_reloading_constants.html#autoload-paths-and-eager-load-paths

They do not need to be the default ones, any custom directories

Ok, that information is what I was looking for.  Thanks. :)  Moved to validators in 628f0b9

I'm in agreement with ultimately changing this to only "validate on save", but I'd really rather see that in a separate PR where the LDAP connector is changed the same way, and making that LDAP change concurrently would be outside the scope of this PR.

So, if I understood correct, you prefer something that is not better just because of something that is already there? It's just a matter of removing stuff at this point, things will become even simpler.

In the case of UI/UX, maybe. :)  I'm not sure that having the separate validation button is actually not better.  There's no disputing that it's technically redundant, but the end user doesn't see that.  If the button is simply removed, then an end user who's seen the LDAP connector may wonder if the OIDC connector is also validated.  The only way that validation will be communicated is if they enter a bad value and see the failure on the form.  If they enter good information and hit save -- which is hopefully the common case -- they can't be sure.  Including an explicit, visible validation step removes that doubt.
An alternative which addresses the same concern might be adding a note either in the documentation or on the form itself indicating that the connector will be tested before being saved, and errors will be flagged.
To be fair, I really wouldn't be sad if it's removed nor happy if it's kept; it's minimal work either way.  It seems like the main sticking point here is whether or not the redundant button is justified by a desire for consistency.  Do we have a user interface expert or team who has a more vested interest in the user experience, and who can contribute how important it actually is to maintain that visual consistency?  I think that relative weighting between technical simplicity and user interface is what this discussion is missing.

I started to change that, but the only way I can see to make that happen is to disable database validation on the factory by default. I decided not to use that solution, because anyone overriding any parameter in a factory call elsewhere would also need to be aware of the "not validated by default" nature. Normally, one would expect the database validation to happen when using a database record-generating factory, I think, so that would be a bad solution.

Indeed that wouldn't be a good solution.
My guts says that having a validation that reaches an external service in a model is not good. And what makes me think that is the dependency created whenever the model is used. Disabling the validation on the factory during the creation improved a lot that problem but was not enough IMO.
The LDAP page will need to also solve this problem when we move to the "validate on save" approach. Maybe we could address this issue when LDAP "validate on save" is done, as long as the solution is different from the one proposed in this PR unless we find an alternative in the meantime.

My guts says that having a validation that reaches an external service in a model is not good. And what makes me think that is the dependency created whenever the model is used.

In this particular case, it's the database structure and the larger system which I think justifies it.  As-is, any value in the database gets provided to Dex during orchestration, and Dex verifies by actually connecting on startup.  If the issuer doesn't match what the external OIDC Provider returns (or if the OP isn't reachable), Dex fails to start, and orchestration fails.  It's been suggested that we could alter the database structure to add a "validated" field which indicates whether or not a connector has been verified (or maybe when it was validated) and is thus safe to deploy.  At that point, it would be safe to reduce the validation to only format checks, and the "second-stage validation" could make the external calls.
If this second-stage validation was initiated when orchestration happened, all connectors could be revalidated each time.  That would also help ensure that Dex didn't fail to restart if something changes between initial validation and a later reorchestration.  While I don't love the idea of potentially "bad" data in the database, I do like the potential increase in robustness that would provide.
Moving the candidate connectors to a separate table and replacing the current tables with a read-only view showing only "validated" data would allow this to be mostly transparent to the data consumers, and would allow the second-stage validation to happen entirely in Velum.  I think.

The LDAP page will need to also solve this problem when we move to the "validate on save" approach. Maybe we could address this issue when LDAP "validate on save" is done, as long as the solution is different from the one proposed in this PR unless we find an alternative in the meantime.

Yes, it would make sense to combine the back-end validation rework with the front-end interface appearance, since they're fairly interdependent changes.

After:

rebase on current master
squash the commits
track "tweak validation workflow" somewhere
Are we in good shape now?

Rebased on current master yesterday.
Walked through the full config again.  Build and auto-bootstrap using KVM build 454, then follow the OIDC testing instructions to set up a test dex and log in with that OIDC provider by visiting /oidc on the admin node.  This results in the kubeconfig download page.  I did not use kubectl with that configuration file, but the contents look reasonable.

I verified this velum code with salt (https://github.com/dannysauer/salt.git) and updated master automation repo (11/5). It worked as it is expected.
After I created ,surely using kubconfig from admin at first ,clusterrolebinding such as "kubectl create clusterrolebinding oidc-test  --namespace=default --clusterrole=edit --user=<email.from.oidc.provider>", I could use kubectl from the oidc user for the default namespace
Great work!!! David and Danny.
Everything looks good to me.


Package registry client

Continue https://github.com/apple/swift-package-manager/pull/3640 and
polish up the registry client.

@swift-ci please smoke test

@swift-ci please smoke test

ci failures should be solved with https://github.com/apple/swift-package-manager/pull/3865

@swift-ci please smoke test

@swift-ci please smoke test


Bag: Tab in chromium debugger is hide after chromium update

Version
5.3.3
Browser and OS info
chromium  85.0.4183.102 / arch linux
Steps to reproduce
Update chromium to 85.0.4183.102 version and open chromium debugger on page with vue application in debug mode.
What is expected?
See the vue devtools tab.
What is actually happening?
Vue devtools tab is hide, but vue.js is detected on this page.

Problem is solved after downgrade chromium to 85.0.4183.83 version. Please, react quickly.

@evgeniy-webmaster Looks the same as #1326.


Revert "Minor fix"

Reverts hckuo/Cozart#21

@hckuo are you sure it's /Conzart? / means root.

@tianyin  It'll work both ways, hckuo 's path is absolute mine was relative.

It'll work both ways

I don't like absolute path. I think we should use relative path if possible.

Although I personally don't like absolutes as well but here the docker run ... command (in the docs) always mounts the cozart folder in to the root of the container, so it's not a big issue to use absolute here. So finally, It's totally upon preference :)


API rejects client JWT causing client data to be cleared

Refreshing the page prompts re-auth with Auth0 after which API returns all data on client reconnection. But this defeats the purpose of incremental sync updates.

Feedback from users over the weekend:

One user reported that she could not see any content. Deleting the cache (from the settings menu) fixed the issue
Another user reported that deleting the cache (from the settings menu) did not fix the issue, but logging out and logging back in did solve the problem.

O: I think the problem with the people cant see content in the app has to do with the api does not reject a connection with an invaild token, but the queries fails by saying the membersOfGroups is not iterable
I: Thanks. I think the API should return a rejected message, then we can force the app to re-authenticate with Auth0
O: It allows you to connect, when the token is expired which is wrong
O: Socket has a way to reject the connecteion if the authentication is not valid, not sure if you implimented it that way
I: We want unauthenticated users to also be able to connect (public users), but then there would be no token. If the token is rejected then we need to do something else. I will check a bit

Looks like we have two effects of the issue:

Failed auth causes empty access map to be sent to users, clearing docs instead of prompting the users to re-authenticate
On re-authentication, data is sometimes not backfilled (after having been cleared)


case-sensitivity inconsistencies

It looks like types have to be Capitalized
Type
  : <Name: Identifier>
  | 'optional' <Target: Type>
  | 'any'
  | 'nothing'
  | 'Boolean'
  | 'Integer'
  | 'Real'
  | 'Number'
  | 'String'
  | 'Data'
  | 'Array'
  | 'List'
  | 'Pointer'

BUT, i have to check is a with lowercase, e.g. is a number

I think that is just the syntax.  "is a boolean" is an operator.

that won't be confusing at all, when someone is going to think they should type is a Boolean


Encapsulating every intercept data

Each event method caller has a data class, for instance, onConnect has InterceptConnectMessage.
This way, we organize things better and can attach other informations without change the protocol message classes.
Removed not more necessary UnmodifiableConnectMessage and UnmodifiablePublishMessage
classes.

Sorry, I left an error in BrokerInterceptorTest, the Intellij isn't so proactive as Eclipse. I'm closing and open a new.


Finding Boost resets Boost CMAKE vars

Is your feature request related to a problem? Please describe.
I am using a project which depends upon Boost. It is able to use Boost either as a shared library or statically linked - it refers to the Boost_USE_STATIC_LIBS CMAKE variable to determine which. The problem is that with users using vcpkg, it will reset the values of Boost-related CMAKE vars during find_package due to the follow lines; https://github.com/microsoft/vcpkg/blob/fe2a6bb789e904520797ec229272c6c1a42e7e38/scripts/buildsystems/vcpkg.cmake#L818
This causes problems in cases where the user wants to statically link Boost. They would set their vcpkg triplet to x64-windows-static and Boost_USE_STATIC_LIBS to ON. Problems occur later in the build config script since vcpkg has located static libraries but also reset Boost_USE_STATIC_LIBS to OFF.
Proposed solution
find_package for Boost does not reset the state of Boost-related CMAKE vars if they are already defined, or at least makes them represent the types of library found.
Describe alternatives you've considered
Currently working around it by using this (i.e, storing and restoring the state of Boost_USE_STATIC_LIBS);
set(_Boost_USE_STATIC_LIBS ${Boost_USE_STATIC_LIBS})
find_package( Boost ${REQ_BOOST_MINIMUM_VERSION} REQUIRED COMPONENTS ${REQ_BOOST_LIBRARIES} )
set(Boost_USE_STATIC_LIBS ${_Boost_USE_STATIC_LIBS})

@firthm01, thanks for reporting this issue!
The changes is involved by https://github.com/microsoft/vcpkg/pull/5459/, @vicroms, do you remember why it set here?


using the bulit-in relative encoder for the turning motors?

We do not have absolute encoders for our swerve module, is there a way to use the built-in encoders instead of the relative ones that are in the code? we attempted to change it ourselves but when we enable the robot it freaks out. Are we just dumb, or is it something else?
MAXSwerveModule.zip
this is the changes we made, and we tried to use the same encoders as the driving motors but the robot crashed without removing the invert on the turning encoder in constants.java and when we removed it, the motors for turning just freaked out.

Without an absolute encoder, you would need to manually align the wheels every time you turn on the robot. You would be much better off just getting the encoders.

Are you using MAXSwerve modules? The kit includes the encoders.

https://www.swervedrivespecialties.com/products/mk4i-swerve-module?variant=46872600084781
We are using the mk4i modules from swerve drive specialties. They have a cancoder on them but I had assumed they were for

Yes, the external absolute encoder is for steering, not distance tracking.


[DROOLS-970] fix Date coercion when the constraint uses a declaration…

… or an instance field
(cherry picked from commit cc9a5eab6dc5e6e2a06ace59a3d0c8e0ce282b59)

This fix also alleviate the build time performance degradation reported here https://bugzilla.redhat.com/show_bug.cgi?id=1276311
After this fix I rerun the benchmark mentioned in this comment https://bugzilla.redhat.com/show_bug.cgi?id=1276311#c1 obtaining the following result:
747.449 ± 3.265 ms/op

jenkins, retest this


test(diagnose): add test when all is ok

verifies that the default message appears in the console/out
when no problem was detected.
Signed-off-by: Xavier Coulon<EMAIL_ADDRESS>

Codecov Report

Merging #75 (257f182) into main (7e37de0) will increase coverage by 0.11%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #75      +/-   ##
==========================================
+ Coverage   78.08%   78.19%   +0.11%
==========================================
  Files          16       16
  Lines         908      908
==========================================
+ Hits          709      710       +1
+ Misses        145      144       -1
  Partials       54       54

Impacted Files
Coverage Δ

pkg/diagnose/diagnose.go
92.30% <100.00%> (ø)

pkg/diagnose/diagnose_replicaset.go
71.01% <0.00%> (+1.44%)
:arrow_up:

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


Supports JSON format

What problem does the new feature solve?
Supports inserting/querying JSON data.
What does the feature do?
Support for JSON data format will be divided into several stages:

Add necessary data type support, including Lists and Nested data
Supports inserting JSON data
Supports querying JSON data
Supports Schemaless JSON

Implementation challenges
See also:

https://github.com/apache/arrow-datafusion/issues/7845
https://github.com/mongodb/bson-rust
https://github.com/datafuselabs/jsonb

I'd like to get involved in this. Also, I plan to apply for the corresponding project in OSPP as well. Here's a rough plan.

Add necessary data type support, including Lists and Nested data
The List data type has been supported already. As for Array, I assume it's corresponding to the FixedSizeList in arrow. I wonder if the Nested data is corresponding to the Schema or other types in arrow. If so, I think the type support part can be finished following the implementation of List.

Supports inserting JSON data
As for json itself, since apache arrow has not supported json yet, we can store it in String (as a plain string of the json) or Bytes (as for jsonb).

Supports querying JSON data
This part requires some UDFs in datafusion for querying string datatypes. We can pick up the functions supported by Postgres to see what we can do.

Supports Schemaless JSON

As described above, the Schemaless JSON seems to be json data type itself, and we can call the json with specific schema 'object' or something else?
Since I'm not familiar with the storage and query part of greptimedb, the plan above may be naive. Hope I can make a better proposal next month. Looking forward for your advice :)

As mentioned in https://github.com/apache/datafusion/issues/7845#issuecomment-2068061465, I was greatly inspired by JSONA and proposed a JSONA variant that may leverage the high compression rates of columnar storage formats. BTW, If we decide to implement our own JSON  storage implementation, It's definitely an excellent opportunity to evaluate various storage implementations of JSON in the OLAP scenario.
A naive proposal of JSONA variant
For JSON [false, 10, {"k":"v"}, null] can be stored as the following struct.
Struct {
    Nodes: StartArray, FALSE, Number, StartObject, Key, String, EndObject, NULL, EndArray
    Offsets: [NULL, NULL, 0, NULL, 0, 0, NULL,…]
    Keys: ["k"]
    Strings: ["v"]
    Numbers: [10]
}

The Struct data can be efficiently encoded into compact files using the underlying file format. In our scenario, we use the Parquet as the underlying file format. For instance, the Nodes field can be represented as UINT8 and efficiently encoded using default dictionary encoding. Additionally, we can effortlessly implement indexing for the Struct's Keys, Strings, and Numbers fields to accelerate queries.


User with permissions cannot see Netbox Tunnels plugin

NetBox version
What version of NetBox are you currently running? v3.5.3
Describe the bug
netbox-tunnels2 plugin only showing for super user
To Reproduce
Steps to reproduce the behavior:
Home > Authentication and Authorization > Users
Select user
Permissions > Add another permission
Name = Tunnels
Actions  = Can view, can add, can change, can delete
Objects > Object types > select Network Tunnels and Tunnel Type
Save
Save user
Expected behavior
User should see Network Tunnels under Plugins
Screenshots
Super user:

User with permissions:

Additional context
It is available for superuser but cannot get it for a standard user.

I need to dive into this. I don't know the ins and outs of permissions beyond what the plugin tutorial has.

I've got the same issue in 3.5.7 and in essence, it just doesn't show the Plugin section. If I paste the URL's the pages shows for users.
I think it may be that you are using PluginMenuButtons in navigation.py while others use pluginMenuItem.


Update the vscode-uri package with Uri.joinPath

Uri.joinPath is now a part of the API, but it's not yet in the vscode-uri npm package.
The standalone vscode-uri package is convenient, for example, for writing and unit testing extension modules that do not directly depend on vscode itself, but still operate Uris.

It's not that easy because joinPath uses node's path#join-utility. The vscode-uri package runs also in browsers so I need a good replacement or copy-paste of node's lib

There's browserify's implementation, which matches Node.js 10.3 API.

This happened<EMAIL_ADDRESS>Becasuse its path-math utils are slightly different than the built-in once they are exposed a sibling, e.g import { URI, Utils} from 'vscode-uri, see https://github.com/microsoft/vscode-uri#usage-util


tricky problem with Empty test suite

There are two unit tests listed below, one works well, the other reports 'empty test suite'.
The difference between this two test cases is that the second one contains a space at the end of test case name. It troubles for a quite long time before I located this problem.
I'm using scalatest 2.2.1 with FunSuite only.
test("transfer to") {
    val transferTo = Dao.findTransferTo(alarmId).await
    println(transferTo)
  }

test("transfer to ") {
    val transferTo = Dao.findTransferTo(alarmId).await
    println(transferTo)
  }

Can you elaborate on how you are running these tests? When I run them directly they both execute the test:
scala> class OneSuite extends FunSuite {
|   test("transfer to") {
|     fail("hmm")
|   }
| }
defined class OneSuite
scala> class TwoSuite extends FunSuite {
|   test("transfer to ") {
|     fail("hmm")
|   }
| }
defined class TwoSuite
scala> run(new OneSuite)
OneSuite:

transfer to *** FAILED ***
hmm (:18)

scala> run(new TwoSuite)
TwoSuite:

transfer to  *** FAILED ***
hmm (:18)

Yes, of course. Sorry for this not expressive question.
I ran this two test case in intellij idea 14.1. When run test case separately(it's a cool feature provided by intellij idea of running one single test case within a test class), the second case report empty test suite. If run this test cases together(run all test cases within a test class), everything is OK.
By putting mouse cursor in a test case and right click run test case, intellij idea run that single test.

I see. This is actually an IntelliJ bug. Can you report it to IntelliJ?
Thanks.
Bill

Ok, thanks for answering :+1:


Preparing an AWS server for dev

We need three servers

dev server
staging server
prod server

done. Instructions on README.md. All on atogov/RAM/develop branch.


fix: fixed navbar height issue, implemented mobile design

Fixes #1028
Signed-off-by: Anton Biriukov<EMAIL_ADDRESS>

Closes #1031


[Spike] Explore the usage of PubSub Lite Spark Connector for new Java templates

This issue will serve as a foundational step towards the PubSub Lite templates in Java.
PSL Connector references: https://github.com/googleapis/java-pubsublite-spark

Successfully able to export data from a Pub/Sub Lite subscription. Sample code can be found at:

Branch: 593-spike-explore-pubsublite-connector-for-java
Commit: https://github.com/GoogleCloudPlatform/dataproc-templates/compare/main...593-spike-explore-pubsublite-connector-for-java


translations PR 20190916

Ideally this PR should be review by community members for each language.
Note: In the event that you see an english translation instead of the desired language is because this PR was submitted before the translation was made on the Mattermost Translation Server and probably will be submitted for the next PR.

@enahum @amyblais Were these supposed to ship with 5.15?

Do we submit these manually earlier in the future?

@amyblais Yeah, we should submit the last translations PR around or after T-7, which can be manual if the Monday's PR is too late

Noted, last week Monday was T-5.


Improvement: Localization

Describe the bug
Hi,
Excellent integration on our side, however, so we are missing a feature: "Localization".
Is there any way to do something?
SDK Version

Version [2.1.1]

closing as duplicate of #627


Adding AudioControl

Media/AudioControl - AudioControl
Library for volume control of the main audio in Windows 10.

Sorry @devmartins,
This entry isn't going to make the list.
Don't let this setback cause you to lose heart, and we look forward to your next contribution.
Thanks, Pleb


[Bug] shift-up arrow doesn't select multiple list items

Initial checklist

[X] I agree to follow the code of conduct
[X] I searched issues and discussions and couldn’t find anything (or linked relevant results below)

Affected packages and versions
7.3.5
Link to runnable example
No response
Steps to reproduce
Go to https://milkdown.dev/playground
Scroll to the list and click after the second item (Designer: Mirone)
Press shift-up arrow repeatedly
Expected behavior
It will select other items in the list
Actual behavior
It only selects the current item
Runtime
Chrome
OS
macOS
Build and bundle tools
No response

It's a rough implementation in playground and the list item component is much better. I'll replace the implementation in website soon.


Invalid Access Token

Question
Hi, I have this problem in .env everything is correct

Hi, please, check, that you are sending identity to the API and check if identity exists in your token (you can use smth like jwt.io to get the token body).

Hi, please, check, that you are sending identity to the API and check if identity exists in your token (you can use smth like jwt.io to get the token body).

What are you mean? I only changed .env what next step?

Thanks for the issue @kvachakhia!
Can you please provide more information on the problem that you are facing? Without additional information, I won't be able to help out.

What specific steps did you take to get this error?
Did you create an API key in the Twilio Console, and add the credentials to the .env file?
What other variables are set in the .env file?
If you inspect a token in at https://jwt.io/, does it appear to be well-formed?
Are there any errors in your terminal?
What software versions are you running?

The more information you provide, the better I'll be able to help. Thanks!!!

Closing due to inactivity. Happy to reopen if there is more information!


Deploy Application to Cloud Foundry with SAP S/4HANA Cloud SDK for JavaScript

Tutorial URL: https://developers.sap.com/tutorials/s4sdkjs-deploy-application-cloud-foundry.html
Please specify the step you are referring to: Step 1: Deploy application to Cloud Foundry
When deploying with cf push, an error occurs as follows:
Staging app and tracing logs...
   Downloading nodejs_buildpack...
   Downloaded nodejs_buildpack
   Cell 35f8dc07-edbb-496b-8286-58d05d7d2e2e creating container for instance 73b0c62a-8a11-4c40-a240-6d313ef91b3b
   Cell 35f8dc07-edbb-496b-8286-58d05d7d2e2e successfully created container for instance 73b0c62a-8a11-4c40-a240-6d313ef91b3b
   Downloading app package...
   Downloading build artifacts cache...
   Downloaded app package (2.4M)
   Downloaded build artifacts cache (20.8M)
   -----> Nodejs Buildpack version 1.6.43
   -----> Installing binaries
          engines.node (package.json): ^11.10.0
          engines.npm (package.json): unspecified (use default)
          **ERROR** Unable to install node: no match found for ^11.10.0 in [6.15.1 6.16.0 8.14.1 8.15.0 9.11.2 10.15.0 10.15.1 11.8.0 11.9.0]
   Failed to compile droplet: Failed to run all supply scripts: exit status 14
   Exit status 223
   Cell 35f8dc07-edbb-496b-8286-58d05d7d2e2e stopping instance 73b0c62a-8a11-4c40-a240-6d313ef91b3b
   Cell 35f8dc07-edbb-496b-8286-58d05d7d2e2e destroying container for instance 73b0c62a-8a11-4c40-a240-6d313ef91b3b
   Cell 35f8dc07-edbb-496b-8286-58d05d7d2e2e successfully destroyed container for instance 73b0c62a-8a11-4c40-a240-6d313ef91b3b
Error staging application: App staging failed in the buildpack compile phase
FAILED

The Node.js version ^11.10.0 is specified in package.json and it appears that this was from PR #66 earlier this month.
Regressing the required Node.js version to what it was previously i.e. 11.9.0 causes the deployment to be successful.

Thanks for pointing that out!
@rkamath3 I think we can revert the PR as a quickfix.
Apparently, the Cloud Foundry node.js buildpack is regularly changing which node versions are supported in a breaking manner.
So we should probably do something like this:
"engines": {
  "node": ">=11.0.0"
}

@mr-flannery I will do that and add you as a reviewer.
I observed the same behaviour with changing the supported node versions, that's why we changed it in the referenced PR.

We changed the version as proposed by @mr-flannery
Thank you for raising this issue @qmacro !

@qmacro Can we close the issue now?

This is for the team to fix, and I have just checked - it has been: https://github.com/SAP/cloud-s4-sdk-examples/commit/fd2fd45fa95e1bfdb41e13882c248bf7c78593c1


what i learnt in day 1 of webdev bootcamp

@avijit-28
Feedback
~~ All Good 👍

amazing platform...

Another Identical PR Merged Already :)


Display descriptions of schemas, classes and elements in a request

Description
Add the descriptions (if available) for each schema, class and element listed in a data request to help the user understand the contents of what they are requesting.
Additional context
This is a rough mockup of what could be shown, but would need better styling:

@pjmonks, I don't think this solves the problem that Jim and James raised. My understanding is that they were using the Query Builder which presents them with a simple list of field names. At that point they are unable to see any additional information, and it is on that page that they would wish to see the information. Putting the descriptions on the lists of fields does not aid them in writing the query because it is on a different page. We need to work out whether we can get this information to the query builder page.

I am movin


Add oss env for testing

What does this PR do?

Testing secrets provider worked with specific branch to run oss environment so this ticket implement first phase of oss environment for testing (second phase is working with helm ) .

What ticket does this PR close?
Connected to #135
Checklists
Change log

[ ] The CHANGELOG has been updated, or
[x] This PR does not include user-facing changes and doesn't require a CHANGELOG update

Test coverage

[ ] This PR includes new unit and integration tests to go with the code changes, or
[x] The changes in this PR do not require tests

Documentation

[x] CONTRIBUTING file were updated in this PR, and/or there is a follow-on issue to update docs, or
[ ] This PR does not require updating any documentation

@sgnn7 as discussed the first goal is to merge our old branch to master so we can run secrets-provider with updated k8s-conjur-deploy repo.
Next phase is to fixed some issues we have with this repo (add retry to some commands which failed because of k8s)
After that we will move to helm fo oss.
All those changes were verified localy and i run secrets-provider repo as well.


Use :: as the zk host delimiter in the zk leader namer

Fixes #461
Use :: as the zk host delimiter instead of , because commas are not permitted in finagle Paths.

LGTM. Though, I worry about how this will work with IPV6 addresses (where :: is perfectly legal). For better or worse, our current method doesn't work well with IPV6 anyway, so it's probably fine to proceed with this.  Would it be a better fix to simply admit commas in paths?

Admitting commas in paths feels like a more invasive sweeping change.  I could imagine there existing comma-separated lists of paths out there somewhere...


Documentation of Usage

It would be nice to offer some screenshots on how to use the bridge, to let the people know. :)

I'm currently occupied and don't have time to write docs yet. And btw, I'm actually curious about where you found this plugin since I haven't officially introduced the plugin to the general public and create PR to the community plugin list. 👀

Im heavily using Obsidian and MarginNote and was looking for some ways to bridge them. After googling obsidian and marginnote your GitRepo was shown. :D

User guide is ready and the plugin is now pending review: https://github.com/aidenlx/marginnote-companion/wiki


jackson 2.10.2

notes: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.10.2

@webron

@frantuma :)

obsolete.


Move from voyage 'combo ranks' to voyage 'pair ranks'

I previously felt like we needed a way to notify users of this change directly on the site, but I suspect this is just fine to merge and announce in Discord.
At some point building a system for temporary, global in-page "notifications" that can be dismissed (with dismissal remembered in localStorage) is a good idea, but I don't think it is necessary for this change.


Send correct http return code for avatar-endpoint

Send correct http status code for */avatar api-endpoints (Fix #28725)

Hmm… I'm not particularly sure if this is a good idea. After all, we promise API stability, and this is by definition a breaking change. However, if the current return value is the wrong one as per the standard and there isn't much reliance on the return being exactly 204, then I'm slightly in favor of this change.

As written on mdn for updating or creating it should send 201
But because the body is empty, so the 204 is not 100% wrong

Tests need adjustment too.

As written on mdn for updating or creating it should send 201

This is not true, 201 should only be returned when a resource has been created not updated. For updates it should return 200 or 204 depending whether returning something in response or not

As written on mdn for updating or creating it should send 201

This is not true, 201 should only be returned when a resource has been created not updated. For updates it should return 200 or 204 depending whether returning something in response or not

Should be better now

any updates? Or should I close it?

any updates? Or should I close it?

I don't think return the avatar to client is necessary. And some bug fixes are very important which should be fixed ASAP.

I agree, I don't see added benefits for returning uploaded avatar back to client


map reuse with T265

Required Info

Camera Model
T265

Operating System & Version
Ubuntu 18.04

Language
{C++ }

Issue Description
Hello!
We are trying to use the T265 camera in a medical trial where we have to use a pre-existing map (captured with T265) and cannot do map building every time. We just need the localization data after map building is done. I looked at the SDK APIs and found rs2_import_localization_map and rs2_export_localization_map for T265. Is this the way to achieve map reuse with T265?
If yes, is this possible with RealSenseViewer or we have to roll our own code with the SDK?

I hope the link below will be useful.   It discusses exporting a map from the RealSense Viewer and re-importing it.
https://github.com/IntelRealSense/librealsense/issues/4526

@MartyG-RealSense I have seen that link before opening this issue, not sure how that relates to what I am trying to accomplish here. That link talks about correlating between two maps, whereas, I want to use a single map across multiple localization runs. I do not want to recapture the map again.

I recommend looking at the ar-advanced sample program added recently to see if it meets your needs in regard to localisation map import / export.
https://github.com/IntelRealSense/librealsense/tree/master/examples/ar-advanced
If that does not help, a T265 expert on the RealSense team such as @radfordi or @ev-mp  may be able to advise you.

I did look at that example. It's almost what I want to accomplish, however T265 modifies the map I load into it. I want the camera to "freeze" the loaded map and just do localization inside it without modifying the loaded map.

Hi @3p3r, We've though about doing a mode where the map is fixed, but we don't have something like that at this time.

@radfordi thanks for the clarification. given the application in a medical trial, having the map regenerated every time adds randomness which is not ideal.
If map fixing is not possible, is there a way to quantitatively measure this randomness so we can report that on our paper? For example, if we load a pre-captured map and T265 modifies it, we export it again, is there a way to capture the diff between the two maps?
How would you suggest approaching this with T265?

Hi @3p3r, as outlined by radfordi, this is not something that is available at this time.
Let us know if there is anything else on this topic.
*If we don’t hear from you in 7 days, this issue will be closed.

We ended up doing our trials all in one-go to reduce the randomness of building a map every time we do a trial. We wanted to load a map into the device to fix that variable but since the feature is absent, we just captured SLAM output continuously.

I also had a related question on how maps are handled in T265.
Isn't map part of the pipeline something that users would want to maintain? for example in a larger scale map one might want to load only a section of the map that the camera is in and then as the map updates get detected those updates would be applied to the original map.
I can easily see that in a multi-agent system, A unified map (stored on cloud) would be very much desired and each agent could load and apply map changes as they desire.
With the current setup of the pipeline users have no way to manage the map sadly unless I'm missing a part of the whole story.

BTW In my opinion, you guys have created the most advanced sensor in the world (algorithmically), As a SLAM user I Admire all these efforts.

I second that 100%. There is already a partial approach available, so it is possible to save and load and reuse and improve, but it is not there where it should be. Especially not if it comes to an on the fly management of maps, e.g. while passing building or floor boundaries. I don’t know if you know my results , but those completely underline what you said with respect to the sensor’s and algorithm’s quality. But just a few seem to know. IMHO the T256 is one of the most underestimated sensors nowadays.
https:// neilyoung.serveblog.net

Besides that (I don't know exactly, since I never played with this option): Wouldn't be the ENABLE_MAPPING option exactly do, what is required? I mean, just from the name...


quota release

https://github.com/Azure/sdk-release-request/issues/3968

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-arm-quota


browser not open again

node:internal/process/promises:289
triggerUncaughtException(err, true /* fromPromise */);
^
page.evaluate: Target page, context or browser has been closed
I have placed the code from test.js is in a loop, but when you reopen the browser, it does not open if the previous one was closed via close()

solve

add use proxy pls

solve

1

???


prepared statements cache size issues in cassandra logs

I found below logs in the Cassandra logs -
2607 prepared statements discarded in the last minute because cache limit reached
We can see this very frequently in Cassandra logs.
And according to Cassandra documentation, the first reason for this can be the improper use of prepared statements and the other could be a very small amount of memory size is assigned to prepared statement cache.
Is there anything that can be done on Achilles side to resolve this issue or there could be any other reason for this?
Thanks in advance for help!
Kapil Kaushik

Which version of Achilles are you using ?
Which API are your using ? CRUD ? DSL ?
Achilles has a prepared statement cache and automatically prepare statements for you, especially if you use crud().update(...) or if you use crud().insert(...) with Insert strategy NOT NULL FIELDS

We are using 6.0.0 version.
We are using both CRUD and DSL.

Which DSL ? Update ? Insert ?
Indeed for each combination of fields, Achilles will generate a prepared statement and stores it in its own internal Guava cache
In your case, you may have a lot of entities with a lot of columns right ?

We are using Insert mostly. Very less Update.
I am assuming if we are using the query in below way, Cassandra will keep it once in the prepared statement cache. (And we may be running below query 5 times in 10 seconds).
manager.indexed().select().allColumns_FromBaseTable()
.where().indexed_FIELD_NAME().Eq(VALUE)
.indexed_FIELD_NAME().Eq(VALUE)
.getList();

How many distinct indexed field names are there ?
Normally you should have only 1 prepared statement generated for your select if it is always the same indexed field name being queried

We are using only 2 fields as mentioned in the above query.

The code putting new prepared statement in the cache is here: https://github.com/doanduyhai/Achilles/blob/master/achilles-core/src/main/java/info/archinnov/achilles/internals/cache/StatementsCache.java#L53
Try to put this class info.archinnov.achilles.internals.cache.StatementsCache log level to DEBUG and check your logs to see why there are so many prepared statements being created

The default LRU cache size for prepared statements in Achilles is set to 10 000 which is way above Cassandra limits

The code preparing dynamically new statements is here
public PreparedStatement getDynamicCache(final String queryString, Session session) {
        AtomicBoolean displayStats = new AtomicBoolean(false);
        try {
            final PreparedStatement preparedStatement = dynamicCache.get(queryString, () -> {
                displayStats.getAndSet(true);
                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("Preparing dynamic query : " + queryString);
                }
                return session.prepare(queryString);
            });

            if (displayStats.get()) displayCacheStatistics();
            return preparedStatement;
        } catch (ExecutionException e) {
            throw new AchillesException(e);
        }
    }

I will check that by putting the logs in the way you mentioned and will come back here after my findings.

Getting below WARN in the logs -

com.datastax.driver.core.Cluster Re-preparing already prepared query is generally an anti-pattern and will likely affect performance. Consider preparing the statement only once.

Ok but which statement is "re-prepared" ? We need to have more details

Here is the logs
2019-02-19 09:03:08,524 DEBUG [Timer-Driven Process Thread-293] i.a.a.internals.cache.StatementsCache Putting static cache for key CacheKey{entityClass=class package1.ClassName, operation=INSERT}
2019-02-19 09:01:32,284 DEBUG [Timer-Driven Process Thread-31] i.a.a.internals.cache.StatementsCache Preparing dynamic query : SELECT * FROM db.table1 WHERE field1=:value AND field2=:value AND field3 IN :values;
2019-02-19 09:01:32,285 WARN [cluster10-worker-30] com.datastax.driver.core.Cluster Re-preparing already prepared query is generally an anti-pattern and will likely affect performance. Consider preparing the statement only once. Query='SELECT * FROM db.table1 WHERE field1=:value AND field2=:value AND field3 IN :values;'

After enabling the logs for the *.StatementsCache, I can see the logs but I am not getting exact Idea when cache is getting full. What is the expected log to be printed in this log statement.
Total LRU cache size ?

Yes Total LRU cache size

So according to the StatementCache logs, your application is attempting to prepare multiple times the query SELECT * FROM db.table1 WHERE field1=:value AND field2=:value AND field3 IN :values;
Is your application multi-threaded ?

Yes Total LRU cache size

What value will be printed in this log when the prepared_statement cache reached its limit. Currently, I can see # prepared statements discarded in the last minute because cache limit reached log in cassandra.log file, but I can see only Total LRU cache size {1, 2 or 3}.

So according to the StatementCache logs, your application is attempting to prepare multiple times the query SELECT * FROM db.table1 WHERE field1=:value AND field2=:value AND field3 IN :values;
Is your application multi-threaded ?

Yes, our application is multi-threaded.

Let's me check the code, maybe we have racing conditions when accessing the cache and preparing statements

okay, thanks!
For below error, do you think there is something in our application code on which we should work?

prepared statements discarded in the last minute because cache limit reached

You're mixing cassandra log with Achilles logs.
The statement cache in Achilles is not necessarily full. The statement cache in Cassandra server is full.
How many clients (instances of Achilles) is connecting to your Cassandra cluster ?
Because maybe, each instance of Achilles has only 2/3 statements in its cache but if you have 1000 instances of Achilles connecting to the same cluster, the same statements will be prepared 1000 times and may fill up Cassandra server cache quickly

Okay, so that is the problem. We are having more than 5 Achilles clients for the Cassandra cluster. Am I understanding it correctly? that Cassandra creates a prepared statement again in its prepared statment cache if it is from a new Achilles client even if it has the same prepared statement in the cache.

Okay, so that is the problem. We are having more than 5 Achilles clients for the Cassandra cluster. Am I understanding it correctly? that Cassandra creates a prepared statement again in its prepared statment cache if it is from a new Achilles client even if it has the same prepared statement in the cache.

If it is the case then is there any solution that we can do from Achilles side or increasing of prepared statement cache is the only option.
One thing I want to add, we also have cassandra cluster where we have only one Achilles client. There also we are getting below error.

prepared statements discarded in the last minute because cache limit reached

I don't know how Cassandra manages its cache of prepared statements but what is sure is that if you have different Achilles clients, it can occurs that the same statement can be prepared by different Achilles  instances and sent to the cluster.
Now, if you tell me that you have only 5 instances of Achilles and the cache size of each Achilles client is around 3/4, the maths do not add up to 1000s of prepared statement so there is also another problem

You best bet is right now activate DEBUG log on the StatementCache class from Achilles and let it run for some times and see how many statements are prepared over time

okay, but again as you said earlier, the logs after activating the DEBUG log on StatementCache class will be the one for which prepared statements are created in Achilles cache, not in the Cassandra cache. Right?

okay, but again as you said earlier, the logs after activating the DEBUG log on StatementCache class will be the one for which prepared statements are created in Achilles cache, not in the Cassandra cache. Right?

1 prepared statement in Achilles cache == 1 prepared statement also in Cassandra server cache
The logs (static cache) say that Achilles prepare ahead of time some statements that are used very often. Those are:

INSERT
INSERT IF NOT EXISTS
INSERT JSON
INSERT JSON IF NOT EXISTS
...

Those statements are always prepared when Achilles bootstrap. On the contrary, dynamically prepared statements are done when you use manager.dsl() API

As we are having more than one Achilles Instances and you said this can be one of the reason for re preparation of Prepared statements. Can we do something to avoid this?

Why do you have multiple instances of Achilles in one application ? Or do you have multiple applications using Achilles ?

Yes, statements prepared by Achilles always include the keyspace name so the cache size is independent of the keyspace

Achilles is doing this for you

You can understand this in a way that, multiple builds of the same application is running as different processes. And it is necessary for us. Is there a way to share same cache within multiple Achilles instances? It may not be possible within different VMs ie. VM 1 and VM 2 in below example. But if we can use it between multiple instances of Achilles at single VM ie. All three instances of Achilles can share same cache on VM1 below.
                     Achilles Instance 1--------------|

VM 1----------->     Achilles Instance 2--------------|------->  Cassandra (IP: XX.XX.XX.XX,  Keyspace XXX)
Achilles Instance 3--------------|
                        Achilles Instance 1--------------|

VM 2---------->     Achilles Instance 2--------------|-------->  Cassandra (IP: XX.XX.XX.XX,  Keyspace XXX)
Achilles Instance 3--------------|

You can share, within the same VM, the same statement cache between different Achilles instances:
ManagerFactoryBuilder_For_xxx
                .builder(null)
                .withStatementsCache(new StatementsCache(1000))
                .build()

okay thanks. Will check it. I think this will help by consuming less prepared cache then it is using now.

Will this work for different processes what I explained above? How the other Achilles will get to know it has to pick the existing one?

No, it will work inside the same JVM only. For processes running in different JVM, you need a different statement cache.
But this problem is universal and not related to Achilles. If you were using the plain Java Driver, you would have the same problem e.g. you would have to prepare the same statements in different JVM


[FR] Set a time period along with the number of times to do an action

Is your feature request related to a problem?
So the thing is, say I want to show a feedback dialog to the user every 2 months and do this for a certain number of times.
Describe the solution you'd like:
Set a time period and number of times the dialog should appear.
Time period = value in duration
Count = number
You can even set exponential backoff for that. Like for example, first 3 counts, it asks every 3 months (the developer sets this time period parameter of course), then once the count is reached, it'll ask every 6 months and so on. Now with de-sugaring, you can incorporate java 8 time libraries for that.

Hi, @ubarua123!
Thank you for your issue, and this feature looks very useful.
I will consider the implementation soon.
Thank you for your issue 👍

@skydoves Is there update on this feature? I am also looking for the same feature. Thanks.

by the way, I have managed to achieve this functionality using "mark" feature. If the solution can be available using existing "Only" like style (builder pattern) then it would look more readable and understandable. Below is the code:
only("FeedbackDialogShownCount", 5) {
        onDo {

                doYourTask()

                // Update the last shown date-time
                Only.mark("FeedbackDialogShownCount", "${System.currentTimeMillis()}")
        }
        onDone{      // this block will be executed every time after the 5 times repetition of "onDo()"

                doYourTaskOnDone()

                val previousTimeInMillis = marking.toLong()
                val daysPassed = previousTimeInMillis.durationInDays(System.currentTimeMillis())
                if(daysPassed >= 31) {

                        doYourTaskOnce31DaysHasBeenPassed()

                        // Clear this "Only" target
                        Only.clearOnly("FeedbackDialogShownCount")
                        // Init the "Only" target from 1
                        Only.setOnlyTimes("FeedbackDialogShownCount", 1)
                        // Set the last shown as current date-time
                        Only.mark("FeedbackDialogShownCount", "${System.currentTimeMillis()}")
                }
        }
}

Here is the extension function durationInDays() which you can put in any kotlin class/file:
fun Long.durationInDays(endTimeMillis: Long): Int {
    //milliseconds
    val different: Long = endTimeMillis - this // "this" is start Time and endTimeMillis is end Time
    val secondsInMilli: Long = 1000
    val minutesInMilli = secondsInMilli * 60
    val hoursInMilli = minutesInMilli * 60
    val daysInMilli = hoursInMilli * 24

    val elapsedDays = different / daysInMilli

    return elapsedDays.toInt()
}

Kotlin 1.4 introduced kotlin.time, so I will think about more this feature using the time.
onDo(refreshDuration= TimeUnit, refreshRules = OnlyRefreshRules.CLEAR (or OnlyRefreshRules.NOTHING)) {
  // do something..
}

Any update on this feature? Thanks in advance!


<GoogleMaps/GoogleMaps.h> file not found XCODE (RN version ~0.61.4")

Question
Hello!
I  am using googleMaps in my "react-native": "~0.61.4" project. The code runs perfectly fine when running on my device and simulator, however when trying to upload my code to testflight, first Archiving the project( Project -> Archive), the code fails... saying it somehow can't find the <GoogleMaps/GoogleMaps.h> all of a sudden.
I have searched and searched and can't find a solution. I keep seeing something about Airmaps and some linking that has probably changed on this repo's end, but I have no idea what to do in order to get this to work or what to change.
Can anyone assist me with this?
Do I need to import something other than <GoogleMaps/GoogleMaps.h>
My podfile contains:
rn_maps_path = '../node_modules/react-native-maps'
pod 'react-native-google-maps', :path => rn_maps_path
pod 'GoogleMaps'
pod 'Google-Maps-iOS-Utils'
My AppDelegate.m contains:
#import <GoogleMaps/GoogleMaps.h>
@implementation AppDelegate
@synthesize window = _window;

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[GMSServices provideAPIKey: @'MyapiKey'];
...
}

Thanks in Advance!

Same issue here. Hope someone can help. Thanks

Same here, anybody found a solution?


make的时候报如下错误

[root@localhost dbsync]# make
Makefile:33: 警告：覆盖关于目标“clean”的命令
/usr/local/pgsql/lib/postgresql/pgxs/src/makefiles/pgxs.mk:211: 警告：忽略关于目标“clean”的旧命令
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -DMAP_HUGETLB=0x40000 -fpic -fpic -DFRONTEND -I./ -I/usr/local/pgsql/include -I/usr/local/mysql/include/ -I. -I./ -I/usr/local/pgsql/include/postgresql/server -I/usr/local/pgsql/include/postgresql/internal -D_GNU_SOURCE  -I/opt/local/Current/include/libxml2 -I/opt/local/Current/include  -c -o pg_logicaldecode.o pg_logicaldecode.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -DMAP_HUGETLB=0x40000 -fpic -fpic -DFRONTEND -I./ -I/usr/local/pgsql/include -I/usr/local/mysql/include/ -I. -I./ -I/usr/local/pgsql/include/postgresql/server -I/usr/local/pgsql/include/postgresql/internal -D_GNU_SOURCE  -I/opt/local/Current/include/libxml2 -I/opt/local/Current/include  -c -o pqformat.o pqformat.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -DMAP_HUGETLB=0x40000 -fpic -fpic -DFRONTEND -I./ -I/usr/local/pgsql/include -I/usr/local/mysql/include/ -I. -I./ -I/usr/local/pgsql/include/postgresql/server -I/usr/local/pgsql/include/postgresql/internal -D_GNU_SOURCE  -I/opt/local/Current/include/libxml2 -I/opt/local/Current/include  -c -o stringinfo.o stringinfo.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -DMAP_HUGETLB=0x40000 -fpic -fpic -DFRONTEND -I./ -I/usr/local/pgsql/include -I/usr/local/mysql/include/ -I. -I./ -I/usr/local/pgsql/include/postgresql/server -I/usr/local/pgsql/include/postgresql/internal -D_GNU_SOURCE  -I/opt/local/Current/include/libxml2 -I/opt/local/Current/include  -c -o utils.o utils.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -DMAP_HUGETLB=0x40000 -fpic -fpic -DFRONTEND -I./ -I/usr/local/pgsql/include -I/usr/local/mysql/include/ -I. -I./ -I/usr/local/pgsql/include/postgresql/server -I/usr/local/pgsql/include/postgresql/internal -D_GNU_SOURCE  -I/opt/local/Current/include/libxml2 -I/opt/local/Current/include  -c -o misc.o misc.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -DMAP_HUGETLB=0x40000 -fpic -fpic -DFRONTEND -I./ -I/usr/local/pgsql/include -I/usr/local/mysql/include/ -I. -I./ -I/usr/local/pgsql/include/postgresql/server -I/usr/local/pgsql/include/postgresql/internal -D_GNU_SOURCE  -I/opt/local/Current/include/libxml2 -I/opt/local/Current/include  -c -o pgsync.o pgsync.c
In file included from pgsync.c:23:
/usr/local/pgsql/include/zlib.h:86: 错误：expected specifier-qualifier-list before ‘z_const’
/usr/local/pgsql/include/zlib.h:1025: 错误：expected declaration specifiers or ‘...’ before ‘z_const’
/usr/local/pgsql/include/zlib.h:1349: 错误：expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘Z_ARG’
/usr/local/pgsql/include/zlib.h:1673: 错误：expected specifier-qualifier-list before ‘z_off64_t’
/usr/local/pgsql/include/zlib.h:1748: 错误：expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘*’ token
/usr/local/pgsql/include/zlib.h:1758: 错误：expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘Z_ARG’
make: *** [pgsync.o] 错误 1
[root@localhost dbsync]#

pg版本：
http://get.enterprisedb.com/postgresql/postgresql-9.4.9-1-linux-x64-binaries.tar.gz

已修复。


MSID: 92165 Version: 1 DOI: 10.1101/2<IP_ADDRESS>1284

MSID: 92165
Version: 1
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>1284
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=92165
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>1284

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/92165v1
Update ticket with any problems (add blocked label)
Add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>1284
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/92165/v1/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 6: Add PDF url to manuscripts.json
Pull request created to enhanced-preprint-client

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

Reviews not present yet.
eLocations missing from references


The View More in the Feed page is not clickable

Staging:
https://staging.fightpandemics.work/feed
1.Go to Feed Page
2.Try to click View More after any post..
3.Observe
View More hyperlink on the Feed page isn't enabled.

This is a duplicate issue #713


Fix batch all gather

Closes #1103

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


iOs Build: Undefined symbols for architecture arm64:   "_kCFStreamPropertyShouldCloseNativeSocket", referenced from: .....

Hello
My build environment is:

MacOs Mojave 10.14.6
Xcode 11.2.1

I have next error during linking
Could you give me advise how fix this issue?

Thank you

You need to add the framework of Core Foundation in Xcode  project.
I am sorry that i do not know how to add framework of ios in cmake!

Shared libraries on iOs uses as frameworks,
For now I changed lib type to STATIC for iOs in cmake
I found another issues in build process: test apps have not linked with Foundation, CFNetwork
To fix this issue I added manually in xcode (may be you can fix this by cmake):
Other linker flags: -framework CFNetwork -framework Foundation
 include_directories(include source)
 file(GLOB api_src_list include/*.h source/*.cpp source/*.h source/*.c)

if(NOT IOS)
	add_library(mk_api SHARED ${api_src_list})
else()
	add_library(mk_api STATIC ${api_src_list})
endif()

 if(WIN32)
     add_definitions(-DMediaKitApi_EXPORTS)

I refer to this article and have tried many times, but I'm sorry that I didn't succeed.
I've modified cmaklist.txt now, and only static libraries(for c api) will be generated under IOS.
Thank you very much for your advice!


Updating release to 5.5.1

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


comments right now accept image tags

Somebody put in this comment at
http://www.reactrails.com/

123

@mbreining we need to change the demo so that that HTML tags are stripped. In fact, they might be and this may have been entered on the rails side. In any case, any HTML tags should be escaped before display.  @Dgrafmyre you can take a quick look at this as well. Might be fun to fix.

Deleted the offending records by running this in the console.
Comment.where("text like '%<%'").delete_all

However, the comment field should store anything in there.
Need to fix the ReactJs code so that it sanitizes the html tags before displaying them.

This was fixed and deployed some time ago.


Cannot save onvif settings using web ui

Pressing "Save configuration" in the onvif settings page is not working. I.e. nothing happens and the settings changes are not saved.
Tested on 9FUSY and BFUSY. Yi-hack 0.3.9.

Please, try to clean the cache of the browser.
The last release contains a change in the js part.

Yeah that was it. Thanks!


Scala Common Enrich: switch error messages from Strings to ProcessingMessage case class

overhauled in iglu client, closing


CORS header ‘Access-Control-Allow-Origin’ missing for SPA use BlobServiceClient with InteractiveBrowserCredential (AAD))

I made a simple browser SPA with this code:

import { BlobServiceClient } from "@azure/storage-blob";
import { InteractiveBrowserCredential } from "@azure/identity";
async main() {
const credential = new InteractiveBrowserCredential({
redirectUri: "http://localhost:4200/",
tenantId: "",
clientId: "",
});
const account = "**********";
const blobServiceClient = new BlobServiceClient(
https://${account}.blob.core.windows.net,
credential
);
// Create a container
const containerName = newcontainer${new Date().getTime()};
const createContainerResponse = await blobServiceClient
.getContainerClient(containerName)
.create();
console.log(Created container ${containerName} successfully, createContainerResponse.requestId);
}

based on this: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/interactive-browser-credential.md#for-browsers
I received error:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://*****.blob.core.windows.net/newcontainer1689217360337?restype=container. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). Status code: 403.
I've double checked that I configured the SP based on

https://learn.microsoft.com/en-us/azure/active-directory/develop/scenario-spa-app-registration#redirect-uri-msaljs-20-with-auth-code-flow  config PKCE and CORS
https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity/test/manual/interactive-browser-credential

Hi @baoj-dfo ,
To configure CORS for your Storage account please see https://go.microsoft.com/fwlink/?LinkId=2221130
You can also configure this in the Azure portal:

Hi @baoj-dfo ,
Do you have a chance to try with setting Cors-rules? Any further assistant required?


Fixed deprecated string access error

php 7.4+ has deprecated {} for array access to strings.

Also, will you update packagist with this pr ?

I've released a v2.0.0 which includes it.


BCR-The message " Prahova is not a city in Romania" is displayed

ENVIROMENT: production
URL: https://scrapers.peviitor.ro/src/bcr
Browser: Chrome
Device: Laptop
OS: Windows 10
STEPS TO REPRODUCE:
1.Open URL in browser
2.Run scraper for BCR company
3.Check the location for the "Specialist Contact Center"
EXPECTED RESULTS:
The location of the job should be a locality, not a county
ACTUAL RESULTS:
The message "Prahova is not a city in Romania" is displayed

Fixed!

Retesting. Working as expected


Making stand-alone jar

Is there an idiot's guide to making a stand-alone jar for a simple project with SBT 0.11.2? All the StackOverflow postings I found either did not work because SBT changed so much, or the information provided required the reader to fill in more blanks than I was able to.
Thanks,
Mike

Have you checked out @eed3si9n's https://github.com/sbt/sbt-assembly? It should be pretty straight forward


[stable/etcd-operator] pod annotations

What this PR does / why we need it:
so users can annotate the operator pods with custom annotations.
Which issue this PR fixes
Special notes for your reviewer:
an use case for this is to add the prometheus annotations so the pods are scraped.
Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

cc/ @lachie83 @alejandroEsc

/assign @lachie83

@carlossg I was hoping to see the annotations only on this PR in order for me to approve it and the work to open the service in another PR.

@carlossg I was hoping to see the annotations only on this PR in order for me to approve it and the work to open the service in another PR.

done :)

/approve

/lgtm


Implement MessagePack serialisation

Implement MessagePack serialisation
Description
MessagePack serialisation is currently marked as 'planned' in our project. This feature is crucial for users who work with YAML data formats and expect our tool to support serialisation to MessagePack
Tasks

[ ]  Select MessagePack parsing libraries that fit our codebase and evaluate their styles and compatibility
[ ]  Test library performance, focusing on speed, memory, error handling, and scalability
[ ]  Craft an MessagePack serialisation interface that matches our system's design and code standards
[ ]  Build the MessagePack serialisation logic with an emphasis on maintainability and efficiency
[ ]  Develop a suite of tests for MessagePack serialisation to ensure robustness
[ ]  Update our docs to detail the MessagePack serialisation process, use cases, and API changes

I am confused about Serde.jl add implementation of MessagePack, because MsgPack.jl has actually implemented serialization and deserialization support for structures.
In other words, what are the additional unique features added by Serde.jl wrapping MsgPack.jl?


B 18428 ssw form pdf template opening fix - Experimental

I-12499 and B-18428
Summary
This is a proof of concept to fix an environment error causing local files to not be opened.
B-18428 is a task that is part of generating the Shipment Summary Worksheet, a MilMove document for PPM Shipments. To summarize what it does in a nutshell, it reconfigures an existing API Endpoint; this endpoint when called, will then retrieve information required to fill out fields in the template PDF. This data is retrieved, then the PDF is opened, copied, data inserted, checked for any issues, and then returned for download.
This is fully functional on local environments, tested on the SSW INT branch, the integration branch, and across different developer's local environments. However, when ran on the integration environment, there is a file not found error. This is because of a hardcoded filepath, which may be resolved by this pr using the existing factory method, FixtureOpen.
Here is a copy of the file not found error:

Verification Steps for the Author
These are to be checked by the author.

[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] Have the Agility acceptance criteria been met for this change?

Verification Steps for Reviewers
These are to be checked by a reviewer.

[ ] Has the branch been pulled in and checked out?
[ ] Have the BL acceptance criteria been met for this change?
[ ] Was the CircleCI build successful?
[ ] Has the code been reviewed from a standards and best practices point of view?

Setup to Run the Code

Instructions for starting storybook
Instructions for starting the MilMove application
Instructions for running tests

How to test

Access the client app, login as a customer.
Find a PPMShipmentId
access the following URL: /internal/ppm-shipments/{ppmshipmentid}/shipment_summary_worksheet?preparationDate=2024-02-12
Record and post timestamp so any errors can be reviewed in Cloudwatch
If the PDF appears, celebrate!

Frontend

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, Edge).
[ ] There are no new console errors in the browser devtools.
[ ] There are no new console errors in the test output.
[ ] If this PR adds a new component to Storybook, it ensures the component is fully responsive, OR if it is intentionally not, a wrapping div using the officeApp class or custom min-width styling is used to hide any states the would not be visible to the user.
[ ] This change meets the standards for Section 508 compliance.

Backend

[ ] Code follows the guidelines for Logging.
[ ] The requirements listed in Querying the Database Safely have been satisfied.

Database
Any new migrations/schema changes:

[ ] Follows our guidelines for Zero-Downtime Deploys.
[ ] Have been communicated to #g-database.
[ ] Secure migrations have been tested following the instructions in our docs.

Screenshots

Test coverage on client failed.
Last run: Tue 20 Feb 2024 03:49:50 PM UTC
Refer to this report to see coverage details for the client app.
Documentation for test coverage can be found at this link.

Test coverage on server failed.
Last run: Tue 20 Feb 2024 03:52:49 PM UTC
Refer to this report to see coverage details for the server app.
Documentation for test coverage can be found at this link.