Cannot connect to the DB cluster via any credentials

Hi,
Im trying to create a HA cluster with following config with pg_bouncer
It appears that i cant access the db via either pg_bouncer or direct connection to any instance
---
apiVersion: v1
kind: Secret
metadata:
  name: superuser-secret
  namespace: prod
  labels:
    cnpg.io/reload: "true"
type: kubernetes.io/basic-auth
data:
  username: cG9zdGdyZXMK # postgres
  password: cG9zdGdyZXMK # postgres
---
apiVersion: v1
kind: Secret
metadata:
  name: db-user-secret
  namespace: prod
  labels:
    cnpg.io/reload: "true"
type: kubernetes.io/basic-auth
data:
  username: ZGItdXNlcgo= # db-user
  password: NWVVKjBBe1VUM2M2Cg== # 5eU*0A{UT3c6
---
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
  name: pg-runner-db
  namespace: prod
spec:
  description: "PG Runner DB for Prod"
  # Choose your PostGres Database Version
  imageName: ghcr.io/cloudnative-pg/postgresql:16
  # Number of Replicas
  instances: 3
  startDelay: 300
  stopDelay: 300
  replicationSlots:
    highAvailability:
      enabled: true
    updateInterval: 300
  primaryUpdateStrategy: unsupervised
  postgresql:
    parameters:
      shared_buffers: 256MB
      pg_stat_statements.max: "10000"
      pg_stat_statements.track: all
      auto_explain.log_min_duration: "10s"
    pg_hba:
      # - hostssl app all all cert
      - host app app all password
  logLevel: debug
  storage:
    storageClass: ebs-sc
    size: 5Gi
  walStorage:
    storageClass: ebs-sc
    size: 5Gi
  monitoring:
    enablePodMonitor: true
  superuserSecret:
    name: superuser-secret
  bootstrap:
    initdb: # Deploying a new cluster
      database: data
      owner: db-user
      secret:
        name: db-user-secret

  managed:
    roles:
      - name: db-user
        ensure: present
        superuser: true
        createdb: true
        login: true
        passwordSecret:
          name: db-user-secret

  resources:
    requests:
      memory: "1Gi"
      cpu: "1"
    limits:
      memory: "2Gi"
      cpu: "2"

  affinity:
    enablePodAntiAffinity: true
    topologyKey: failure-domain.beta.kubernetes.io/zone

  nodeMaintenanceWindow:
    inProgress: false
    reusePVC: false
---
apiVersion: postgresql.cnpg.io/v1
kind: Pooler
metadata:
  name: prod-pg-runner-pooler-rw
  namespace: prod
spec:
  cluster:
    name: pg-runner-db
  instances: 3
  type: rw
  pgbouncer:
    poolMode: session
    parameters:
      max_client_conn: "1000"
      default_pool_size: "15"

The error im getting
root@psql-client:/# psql -h pg-runner-db-rw -U postgres -d data
Password for user postgres:
psql: error: connection to server at "pg-runner-db-rw" (<IP_ADDRESS>), port 5432 failed: FATAL:  password authentication failed for user "postgres"
connection to server at "pg-runner-db-rw" (<IP_ADDRESS>), port 5432 failed: FATAL:  password authentication failed for user "postgres"

Related discussion:
https://cloudnativepg.slack.com/archives/C03AX0J5P29/p1696750251890289

if we did not specific the enableSuperuserAccess in cluster yaml file, it will generated as false
spec:
  affinity:
    podAntiAffinityType: preferred
  bootstrap:
    initdb:
      database: app
      encoding: UTF8
      localeCType: C
      localeCollate: C
      owner: app
  enableSuperuserAccess: false
  failoverDelay: 0
  imageName: ghcr.io/cloudnative-pg/postgresql:16.0
  instances: 3
  logLevel: info
  maxSyncReplicas: 0
  minSyncReplicas: 0
  monitoring:
    customQueriesConfigMap:
    - key: queries
      name: cnpg-default-monitoring
    disableDefaultQueries: false
    enablePodMonitor: false
  postgresGID: 26
  postgresUID: 26

thanks @litaocdl

just noticed it is a latest change on main which is on purpose , @kasvith is using latest main, so close it her e with talk with @kasvith https://github.com/cloudnative-pg/cloudnative-pg/commit/c1062f34c56fdd10a92d308635ef717539656b59
Thanks @kasvith


Feature/lib puppet feature

Use Puppet 'feature' to allow puppet to run at all without having the necessary gems installed and thus allow puppet to install them.

Coverage decreased (-49.3%) to 24.48% when pulling 6412b303ee66e0420b6becf5585d921c2acc6171 on vrtdev:feature/lib_puppet_feature into cd998a141c872f94b3a0b2ac66739f712025d0b6 on biemond:master.

Coverage decreased (-49.3%) to 24.48% when pulling 6412b303ee66e0420b6becf5585d921c2acc6171 on vrtdev:feature/lib_puppet_feature into cd998a141c872f94b3a0b2ac66739f712025d0b6 on biemond:master.

Coverage decreased (-49.3%) to 24.48% when pulling 6412b303ee66e0420b6becf5585d921c2acc6171 on vrtdev:feature/lib_puppet_feature into cd998a141c872f94b3a0b2ac66739f712025d0b6 on biemond:master.

I was thinking about using puppet-zabbix strategy to handle gem dependency: https://github.com/voxpupuli/puppet-zabbix/blob/master/lib/puppet/provider/zabbix.rb#L5
But I was afraid it gave me more problems than an actual solution.
For some reason it broke the tests.

Hi,
The way i implemented is is how it is described in the Puppet docs.
It works fine but the tests do indeed fail because the 'include'  statements have been removed/replaced.
I don't have the time at the moment to find out what to change but i believe nothing was changed in what the tests actually test :-)

Thanks. I'll merge and fix it.

I was able to fix the tests, but had to merge your code with an ongoing effort to remove duplicate code i.e. https://github.com/biemond/biemond-wildfly/blob/master/lib/puppet/provider/wildfly.rb
All tests are passing, including acceptance, but it would be nice if you could validate master branch before we release 1.1.0 :+1:
Thanks for your contribution. :smile:


find fondamental and set bass bandwith from 0 to fundamental by default

add frequency bins values in the plot and the fundamental

Maybe this will fix the plot of the bass bin

When the bass bin is from 0 to the fundamental, the graphic is good

Choose standards for bins and print fundamental value

Method .get_fundamental was added to compute the fundamental when it is not specified by the user.
Frequency bins values should be constant for all signal being compared, so the should not depend directly on the signal.


Reads get MAPQ=60 although they are multimappers

Apparently some (possibly many) reads get MAPQ 60 although they actually are multimappers that should get MAPQ 0.
I noticed this when running the samdiff.py script to compare two strobealign commits. In one commit, I had changed the randstrobe hash to an asymmetric one in order to avoid getting the spurious hits on the reverse complement. The exact change doesn’t matter so much because I now realize I have seen the following earlier when tweaking the mapping parameters or the algorithm.
The samdiff script often outputs changes that look like this:
simulated.61
           MAPQ: 60
          score: 120
             NM: 0
          CIGAR: 50M
            ref: 2L -> 2R
            pos: 1680535 -> 19717413

So in one version of the program, the read simulated.61 is mapped to 2L:1680535 and in the other, it is mapped to 2R:19717413. In both cases, however, the alignment score is 120, which means that the loci are actually equally good (and in this case, they are even identical). That is, since the read maps equally well to both locations, MAPQ should be 0.
One explanation could be that the program simply doesn’t find the respective other locus, but at least for the above read, both versions find both loci at the same score. The set of produced NAMs is essentially the same if one looks only at the highest-scoring ones, they just are found in a different order.
Possibly this is a regression introduced by one of the changes I made; I will need to check this.
See also #25

Great catch, these are the kinds of examples we want to understand how we could improve MAPQ values.

One (the only?) explanation that some reads get 60 instead of 0 MAPQ is that strobealign it exits early if it finds a perfect alignment without any edits and reports the alignment (with MAPQ 60). To report 0 we would need to look at at least one more alignment site, just like BWA-MEM does.
This may not need to be big additional computational cost as we do hamming distance for these alignments (although it will increases  SSW calls a bit for the reads where the second site contains indels)

As discussed offline, this may be a single-end alignment issue only.

I have done some experiments and can confirm that this is not an issue for paired-end data.


Query results in an error "INTERNAL: Failed to bind column reference "c0" [5.0] (bindings: [6.0])"

Consider the following statements:
CREATE TABLE t0(c0 INT);
CREATE TABLE t1(c0 INT);
SELECT * FROM t1 JOIN t0 ON t1.c0 < t1.c0 - t0.c0 WHERE t0.c0 <= t1.c0; -- Error: INTERNAL: Failed to bind column reference "c0" [5.0] (bindings: [6.0])

Unexpectedly, the SELECT results in an error INTERNAL: Failed to bind column reference "c0" [5.0] (bindings: [6.0]).
I found this based on the latest master commit (4ad62e9e13f4a1b3c6452bcb4f5f31eac3d86053).

Good catch, actually triggers an assertion in DEBUG mode as well!

Fixed this in 801101000f874aac259bb8f5af30983a03475fba.
The bug here was in the join order optimizer: the comparison t1.c0 < t1.c0 - t0.c0 was split into two sides (t1.c0 and t1.c0 - t0.c0). However, because both sides contain a column from t1, the comparison could not be split up into a LEFT and RIGHT side. This triggered an assertion in debug mode, and resulted in a binding failure in release mode (as likely binding t1.c0 was attempted against table t0, which is obviously not possible).

Thanks for these detailed explanations! They are very useful for me.

No problem :) It's also potentially useful documentation for later, in case we trigger a similar bug


Fix logger exception issue in convert.js

https://github.com/adobe-photoshop/generator-core/issues/389

Closing in favor for https://github.com/adobe-photoshop/generator-core/pull/393 which I believe to be a more appropriate fix.


Implement storage for UserModuleList and support storage of add and delete

[x] Infrastructure Support
[x] Update existing commands
[x] Write Test Cases

Codecov Report
Base: 28.88% // Head: 30.86% // Increases project coverage by +1.98% :tada:

Coverage data is based on head (d12423c) compared to base (ea7b245).
Patch coverage: 37.75% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #82      +/-   ##
============================================
+ Coverage     28.88%   30.86%   +1.98%
- Complexity      312      342      +30
============================================
  Files           123      123
  Lines          3054     3078      +24
  Branches        329      328       -1
============================================
+ Hits            882      950      +68
+ Misses         2087     2034      -53
- Partials         85       94       +9

Impacted Files
Coverage Δ

src/main/java/nus/climods/MainApp.java
0.00% <0.00%> (ø)

src/main/java/nus/climods/logic/LogicManager.java
0.00% <0.00%> (ø)

...in/java/nus/climods/logic/commands/AddCommand.java
5.88% <0.00%> (-2.46%)
:arrow_down:

.../main/java/nus/climods/logic/commands/Command.java
50.00% <0.00%> (-50.00%)
:arrow_down:

...java/nus/climods/logic/commands/CommandResult.java
47.05% <ø> (ø)

...java/nus/climods/logic/commands/DeleteCommand.java
5.88% <0.00%> (-2.46%)
:arrow_down:

...n/java/nus/climods/logic/commands/ExitCommand.java
75.00% <0.00%> (-25.00%)
:arrow_down:

...n/java/nus/climods/logic/commands/FindCommand.java
72.72% <0.00%> (-7.28%)
:arrow_down:

...n/java/nus/climods/logic/commands/HelpCommand.java
75.00% <0.00%> (-25.00%)
:arrow_down:

...n/java/nus/climods/logic/commands/ListCommand.java
0.00% <0.00%> (ø)

... and 15 more

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

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


Remove "handshake_complete" event field from peer class

Or maybe not. It might be necessary for the handshake timeout thread. But a boolean field may be enough.

https://github.com/yzernik/squeaknode/pull/1071


"Requested by me" filter not applied after login

What Happened
When you first log in and load the Track Requests page, the filter "Requested by me" is displayed but is not applied to the list of requests.
What Should Happen
Only requests displayed by me should be rendered if the filter "Requested by me" is automatically selected.
To Reproduce
Steps to reproduce the bug:

From the sidebar, click on the "Track Requests" icon
Enter credentials and log in
MOVE redirects you to the Track Requests page
See error (screenshot below)

Screenshots

Additional Notes
I haven't submitted any studies from my account (Maddy!)
Tested in prod (v1.4.0)
Tested on Chrome

Also seeing this in dev.


How to use this package inside Docker?

Hi,
I'm using this lib in my website but I want to host the website with docker. I don't know what are the dependecies required inside docker. Can anyone share the dockerfile code for reference.
Thanks

What issues did you run into? Use the official nodejs image and you should be fine?
NextJS does have docs about this though with an example dockerfile with-docker.


Check if GIT_TAG is semver

Description of changes:
Fallback to HELM_TAG if not.
This fixes an issue we were experiencing where GIT_TAG was a hash, not a semver.
When the bundle promotion process tried to pull that helm chart tagged by the hash, the pull failed because it was not a valid semver.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm
/approve


Fix line folding

This PR:

Improved line folding. Fixes #41
Closes #44
Closes #86

[x] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

Contribution guidelines:

See our contributor guide for general expectations for PRs.
Larger or significant changes should be discussed in an issue before creating a PR.
Contributions to our repos should follow the Dart style guide and use dart format.
Most changes should add an entry to the changelog and may need to rev the pubspec package version.
Changes to packages require corresponding tests.

Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.

@jonasfj This is the draft. Forgive the commits from #84, I will rebase this branch once it is merged.
Also, I added a funky method to reduce the code duplication after several iterations for both _tryYamlEncodeLiteral and _tryYamlEncodeFolded. Should I just duplicate the code? As both methods attempt to chomp strings the same way.
Will add tests for this then.

I landed #84 so please rebase this PR :D

@jonasfj I've updated the change log with changes from #84 too.

My quick takeaway after seeing a few more bugs is that maybe we should be more conservative about what kind of strings we attempt to encode as literal strings.
Perhaps also as folded strings. Perhaps it's better to fallback to double quote string in the edge cases, rather than too complicated code. Certainly, we can always try to improve and not make it fallback in a future PR.

@jonasfj I'm sorry for the chomping indicator oversight on my part.
I've reduced the scope of this PR and fixed the chomping indicator issue (or rather removed the chomping indicator + references). If you still want me to work on this or any other issue, I am happy to.

I think we should land this as is, it's an overall improvement.
I think we should try to add more tests that challenge _tryYamlEncodeFolded and _tryYamlEncodeLiteral.
In particular with whitespace and linebreaks, in the middle, start and end.
I think we should try to just make smaller PRs that only touch either _tryYamlEncodeFolded or _tryYamlEncodeLiteral, because small improvements are easier to land.


excludeGlob is not used when running command directly

Here is a glob I've attempted to exclude: "tsImportSorter.configuration.excludeGlob": ["*.spec.*"]
When running the "Sort Imports" command via the command palette on a file that is excluded, the imports will still be sorted.

Expectation: Files that are excluded should never be sorted.
Prettier does this how I'd expect: files in .prettierignore are never formatted regardless of how the formatting is invoked.

@Nxt3, thanks for the feedback!
The behaviour is intended for the use case that you want to manually format an excluded file.
Maybe you can provide more details on your use case if you think it's legitimate.

Close the issue as it's expected. Please feel free to reopen should you have any further questions!


missing icons?

16:48:18.084 [SciJava-1a8eb7e2-Thread-0] ERROR loci.formats.ClassList - "loci.formats.in.BDVReader" is not valid.
16:48:18.211 [SciJava-1a8eb7e2-Thread-1] INFO SciView - Started application as PID 11474
16:48:18.221 [SciJava-1a8eb7e2-Thread-1] INFO SciView - imagej-launcher version bigger that non-working version (5.0.3 vs. 4.0.5), all good.
[ERROR] Could not load icon for class: sc.iview.commands.edit.NavigationControlsSettings
[ERROR] Could not load icon for class: sc.iview.commands.edit.InputBindingsSettings
Resetting language to Python
16:48:21.966 [SciJava-1a8eb7e2-Thread-1] INFO SciView - This is sciview / scenery ( / )
16:48:24.190 [SciJava-1a8eb7e2-Thread-1] INFO VulkanRenderer - Loaded Deferred Shading (Deferred Shading, with HDR postprocessing and FXAA)
16:48:24.992 [SciJava-1a8eb7e2-Thread-1] INFO VulkanDevice - Physical devices:
16:48:24.996 [SciJava-1a8eb7e2-Thread-1] INFO VulkanDevice -   0: Intel Intel(R) HD Graphics 530 (Skylake GT2) (IntegratedGPU, driver version 19.3.4, Vulkan API 1.1.102) (selected)
16:48:24.998 [SciJava-1a8eb7e2-Thread-1] INFO VulkanDevice - Creating 1 distinct queue groups

This is what I get when I start sciview (on master 16b690182d2987878490d21949dd511bc12953a8)

sorry, was fault on my side, all icons in place


Add steam as source

Add steam as clickable source to front end using the external steam url.
This should use the following format:
From: steampowered.com
Click to visit site

This should affect all infos that are loaded from steam.

Won't add for now


Prepare documentation materials for contract audit

What
Update baal documentation to reflect the daohaus fork of the baal/zodiac contract.
https://github.com/HausDAO/Baal

Review step / peep review:
Wolflo
Carl
Scott

Work in progress: https://baal-docs.vercel.app/
Adding in all of our docs as we have them so far. We can move this from my repo to the Mystics.

Let's move this repo to the DAOhaus org and close this out. We can create additional issues for filling out content

Deployment: https://baal-docs.vercel.app/
Repo: https://github.com/hausdao/baal-docs


plugin AIOC additions

This pull request includes significant updates to the AIOC logical models and related profiles. The changes primarily involve the addition of new logical models, the renaming and modification of existing models, and the introduction of new CodeSystems and ValueSets.
Additions and Modifications to Logical Models:

Added new logical models for AIOCAdmission, AIOCCondition, AIOCDocument, and AIOCProcedure with detailed attributes and descriptions. [1] [2] [3] [4] [5] [6]
Renamed and modified existing logical models to ensure consistency and accuracy, including changes to attribute names and data types. [1] [2]

Introduction of New CodeSystems and ValueSets:

Introduced new CodeSystems for AIOCAgeDimensionCS, AIOCGenderCS, AIOCUrgencyCS, AIOCSourceOfAdmissionCS, and AIOCDestinationAfterDischargeCS to standardize coding across different models.
Added ValueSets for document types in the AIOCDocumentTypeVS to categorize various document types used in the AIOC use-case. [1] [2]

Updates to Profiles:

Updated PluginDBC, PluginEncounter, PluginPathologyReport, and PluginProcedure profiles to include additional mandatory fields and constraints, ensuring comprehensive data capture and validation. [1] [2] [3] [4]

Documentation and Mapping:

Added a detailed mapping document (vars_list.md) to outline the relationships between the AIOC logical models and the corresponding FHIR resources, providing clarity on data integration and validation steps.

Overall it looks good to me. Main issues that is see:

comment on using Claim instead of EpisodeOfCare
I have been told it is bad practice to set an upper limit to the cardinality. It seems better to assume and open world and define 1..* for all MustSupport fields instead of 1..1.


Enable fox compile

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Fixes #58

@conda-forge-admin, please rerender

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/meta.yaml) and found it was in an excellent condition.

Failing on linux_64 and linux_aarch64 occurs for the same reason in #57, where cmake fails to find ELPA:
-- Extracting ELPA version string from ELPA_INCLUDE_DIRS failed.

I think this is only occurring after conda-forge updated their linux Docker images (and see conda-forge/conda-forge.github.io#2383).
In osx_64 the dynamic libraries for ELPA can only be found using pkg-config, which is currently only configured to be used on osx builds:
https://github.com/conda-forge/qe-feedstock/blob/dcf9eba654f17a1f44a4789b89fd3e58eb210736/recipe/meta.yaml#L27
Maybe an easy fix is to just use pkg-config to help find the libraries in linux too (see FindELPA.cmake for how QE searches for ELPA).
Another potential easy fix is to request a cos7 Docker image for linux builds in conda-forge.yml.

Thanks for looking into this!

Maybe an easy fix is to just use pkg-config to help find the libraries in linux too (see FindELPA.cmake for how QE searches for ELPA).

Please give it a try!


UIKit Adaptations

Prerequisites:

[x] Unless it is a hotfix it should be merged against the dev branch
[x] Branch is up-to-date with the branch to be merged with, i.e. dev
[x] Build is successful
[x] Code is cleaned up and formatted

Summary
imports and applies the UIkit into covidcast:

atm. the new version doesn't have a header since it is designed to be embedded into the main website, either as an iframe or directly via the scripts

The changes look good to me, both the source, and the demo.

LGTM - thanks for making these changes, I'll start logging some UX/UI feedback :)


Add axis label for spec-curve

We need to add the x- and y-axis label for the specification curve chart.

Fixed in 6a3b0544656fc2e7f0556bc074ebd4959063b842


When I use my keyboard to select a word, it gets deleted instead of transforming case

When the word is selected/highlighted using a keyboard (in example below option+shift+left), the toggle transform command deletes whole word.
It works when I use my mouse to select/highlight the word and toggle case.
https://user-images.githubusercontent.com/12024168/136231381-a2a157c6-302d-421d-96e2-059aa49ee8cf.mov

@AlexSapoznikov there seems to be a bug on how the selected text positions are calculated. I will take this up and will let you know once fixed.

Is there any news on this? I've just discovered this extension, which works exactly the way I'm used to from RubyMine — apart from needing me to use the mouse to select words, which isn't ideal when using something keyboard-heavy like an IDE 😁

@pranshuagrawal Hey mate! Do you plan to take it up at some point? :)


Use chained end tag detection for rule 941310

Reduce false positive detection by requiring both start and end tag
matches.
Added additional tests using characters from russion alphabet that
exhibit the same issues.
Fixes #1942

Thank you very much for this PR!! I'm currently trying to understand this again. I find these encoding issues so difficult.
Could you please add a comment/explanation in the rule file and explain what the rule does and why it's a chained rule? So that we still have this explanation in the future, when we all forgot this issue here? This would be very helpful.

Yes, I'll do that. We can also get on a call together if you want. Might be easier than to figure it out yourself ;). Let me know.

I've added an explanation to the rule. Let me know whether it needs more information.

Thank you for the explanation and also for your offer for a call. I'll try again with this explanation and if it's still too complicated for me, I'll be happy to get back to your offer :)

I think I should add the false positive example using German umlauts to the test case. Would be nice to have one for the Russian characters too (I used the Russian bytes in the test but we don't have a complete example).

Thank you @theseion. Do you have time to join us on Monday for the monthly chat? We'll cover this PR there.

I do  but I don't have an owasp account, so I can't log in to Slack. Can you send me a Slack invitation? I think you have my e-mail address.

Sure thing. Here is the invitation. https://owasp-slack.herokuapp.com/
And here is the agenda: https://github.com/coreruleset/coreruleset/issues/2074

@franbuehler will setup a call with @theseion (next week).

Hey @franbuehler and @theseion. Any progress on this front? What came out of your call?

We haven't talked yet, so the review is still out.

Thanks for the info.

Thanks for sorting this out and the extensive documentation @theseion.
I get the feeling the only reason this rule is in PL1 is the fact that FPs are so rare. Given the very limited functionality of the rule (only tomcat configured for US-ASCII 7bit encoding) I can see this rule being shifted to PL3. Imagine running a rule that is hardly ever triggering because the attack is so rare...

Meeting decision July: https://github.com/coreruleset/coreruleset/issues/2141#issuecomment-874288876:
We leave it at PL1 and see if there are more FPs being reported in the future.

We forgot to merge this after the chat last month. Time to do this now.


How to correctly import CJS version?

I've tried to import the CJS version but that then imports the modern module version of proxy-compare which causes Jest to fail.
    Details:

    /Users/ross/code/hopin-web/shells/hopin-web/node_modules/proxy-compare/dist/index.js:140
    export const createProxy = (obj, affected, proxyCache, targetCache) => {
    ^^^^^^

    SyntaxError: Unexpected token 'export'

Hmm, sounds like a tough one. How did you try to import CJS version?

I actually resolved this with Jest moduleNameMapper
 moduleNameMapper: {
    '^proxy-compare$': '<rootDir>/node_modules/proxy-compare/dist/cjs/index.js',
    '^proxy-memoize$': '<rootDir>/node_modules/proxy-memoize/dist/cjs/index.js',
 }


Add simple function to get the holiday for this day

Codecov Report

Merging #6 into master will decrease coverage by 4.93%.
The diff coverage is 41.93%.

@@             Coverage Diff              @@
##             master       #6      +/-   ##
============================================
- Coverage       100%   95.06%   -4.94%
- Complexity      223      235      +12
============================================
  Files            20       21       +1
  Lines           345      365      +20
============================================
+ Hits            345      347       +2
- Misses            0       18      +18

Impacted Files
Coverage Δ
Complexity Δ

src/Moadim/RoshChodesh.php
50% <0%> (-50%)
4 <2> (+2)

src/Moadim/Moadim.php
0% <0%> (ø)
8 <8> (?)

src/Getters/Getters.php
92.85% <86.66%> (-7.15%)
14 <0> (+2)

Continue to review full report at Codecov.

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


Update releases

Following the link in the readme, the newest version seems to be 1.0.2. However the releases page does not show anything newer than 0.7.8. This gives a wrong image of which version is the current version of Pace.
I happen to be monitoring third party releases by following the ATOM feed of release pages here on GitHub (e.g. https://github.com/HubSpot/pace/releases.atom), but this does not seem a solution for Pace.
Could you by any chance start publishing releases to here on GitHub?
That would help a lot!

Please do this. Also, is this being worked on/contributed to anymore?? There' a ton of Pull requests, but the last commit was in 2016... 😑


Is Documenter a required dependency for this package?

Seems odd. Is this on purpose?
https://github.com/rjdverbeek-tud/SphericalGeometry.jl/blob/30ef7252264d438b33e78ccfdab61520114e5d60/Project.toml#L7

I made a PR ghat deals w it. No need for apologies. Was just wondering if it was on purpose.


Frequency Plan for Malaysia

⚠ this issue is incomplete
This is a proposal for the AS923 channel plan to be used in Malaysia.
The allocated range for unlicensed use is 919 - 923 MHz (see this doc)
Other countries with 920-923: Hong Kong, Japan (see #489), Singapore, Thailand, Vietnam
Default LoRaWAN Channels 1-2

Frequency
Bandwidth

923.2
125

923.4
125

Proposed Channels 3-7 (with CFList)

Frequency
Bandwidth

todo
125

todo
125

todo
125

todo
125

todo
125

Proposed Channel 8-10 (with MAC command)

Frequency
Bandwidth

todo
125

todo
250

todo
FSK

Merge into #489


Add opacity slider for all layers

Depends on support in GeoJS.  Currently we only have opacity sliders for WMS layers.

https://github.com/OpenGeoscience/geojs/issues/468

Ref: https://github.com/Kitware/minerva/issues/242

@mgrauer I believe this is done?

Will be with #301.

Ah, I didn't realize that its not in master yet, thanks @mgrauer


LFS-663/LFS-973: The dialog for editing questions should only display question properties and options that are relevant for the selected data type

Jira link

[x] Some data types have a predefined display mode (e.g. boolean - list of options; date, time, computed - input; file - file uploader) and selecting another has no effect on how the question is displayed. The displayMode is now shown only when it is indeed configurable.
[x] The user can now enter Answer options  only if displayMode is list or list+input
[x] Some data types (date, time, computed) currently support at most one answer. The wizard now prevents the user from selecting other restrictions for the number of answers.
[x] The display modes none and hidden are currently not supported and have been (temporarily) removed from the wizard UI.
[x] Also displayed helper text explaining that for maxAnswers and maxPerSubject 0 means Unlimited.

tested - looks good!

Was the Vocabulary filter added in this PR as well? It is not functional.

Was the Vocabulary filter added in this PR as well? It is not functional.

No, it's still the old one that doesn't work. It will be done separately, there's a task for it: https://phenotips.atlassian.net/browse/LFS-884


feat: add image transforms

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

23 of 25 (92.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 56.509%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

internal/start/start.go
22
24
91.67%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
3377

Relevant Lines:
5976

💛  - Coveralls


PreferenceScreenNavigationStrategy question

Hi,
I was using 0.6.2 and updated to 0.8.0 recently. Now I just noticed that I have an issue with preference navigation strategy.
I use the following:
private PreferenceScreenNavigationStrategy.ReplaceRoot mPreferenceScreenNavigation;

if (mPreferenceScreenNavigation == null) {
                    mPreferenceScreenNavigation = new PreferenceScreenNavigationStrategy.ReplaceRoot(this, this);
                    mPreferenceScreenNavigation.onCreatePreferences(paramBundle);
                }

@Override
    public boolean onPreferenceTreeClick(Preference preference) {
        if (preference instanceof PreferenceScreen) {
            PreferenceScreen preferenceScreen = (PreferenceScreen) preference;
            mPreferenceScreenNavigation.onPreferenceScreenClick(preferenceScreen);
            return true;
        }
        return super.onPreferenceTreeClick(preference);
    }

If I just simply click on a PreferenceScreen then it's all OK. But if I try to use
mPreferenceScreenNavigation.onPreferenceScreenClick(mPreference);

then I get NPE.
java.lang.NullPointerException
net.xpece.android.support.preference.PreferenceScreenNavigationStrategy$ReplaceRoot.navigateToPreferenceScreen(PreferenceScreenNavigationStrategy.java:193)
net.xpece.android.support.preference.PreferenceScreenNavigationStrategy$ReplaceRoot.onPreferenceScreenClick(PreferenceScreenNavigationStrategy.java:247)

It was working with 0.6.2. I don't really want to migrate to ReplaceFragment at this point in time.
Is there a way to make this work with 0.8.0?

Any calls to onPreferenceClick must occur between onViewCreated and onDestroyView.

I call it from onCreatePreferences2 as I used to. Tried to move it to onStart but it's the same.
What do I do wrong?

Found it. ReplaceRoot.onCreatePreferences(savedInstanceState) has to be called in any case. It handles restoring correct screen. Move it outside the if block.
if (mPreferenceScreenNavigation == null) {
    mPreferenceScreenNavigation = new PreferenceScreenNavigationStrategy.ReplaceRoot(this, this);
}
mPreferenceScreenNavigation.onCreatePreferences(paramBundle);

Then keep onPreferenceScreenClick only in onPreferenceTreeClick.

Moved it outside the if block. I still get the NPE.

Then keep onPreferenceScreenClick only in onPreferenceTreeClick.

I'm not sure I get this. Isn't mPreferenceScreenNavigation.onPreferenceScreenClick(preference); OK to use?
Thanks for your help.

Any calls to onPreferenceScreenClick must occur between onViewCreated and onDestroyView.

The method needs the recycler view initialized which happens in onCreateView.
There's no point in calling onPreferenceScreenClick anywhere else than onPreferenceTreeClick. What's your intention?

I'd like to note that this was working absolutely fine with 0.6.2.
I have a preferences structure where I have nested preferencescreens:
Main Screen 1
	Sub Screen 1
	Sub Screen 2
Main Screen 2
	Sub Screen 1
	Sub Screen 2
...

I a user clicks on Settings menu, then I want to show
Main Screen 1
Main Screen 2
...

However, if a user clicks on a particular button, then I want to open directly Sub Screen 1 of Main Screen 1
For this, I used mPreferenceScreenNavigation.onPreferenceScreenClick(preference);, which was imitating a user click and was working fine.
What would be the proper way to achieve this if this is not appropriate?

That's a use case I haven't anticipated. Will be fixed in next release - as soon as I investigate https://github.com/consp1racy/android-support-preference/issues/30.
In the meantime try moving it to onResume. If that doesn't work copy the latest version of ReplaceRoot from here into your project and use that until it's released.

Works like a charm. Thanks for the prompt help.


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20221208163933102 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20221208163933102 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.008%) to 42.166%

Files with Coverage Reduction
New Missed Lines
%

extensions/sql-bindings/src/common/azureFunctionsUtils.ts
1
80.65%

extensions/sql-database-projects/src/common/httpClient.ts
1
66.18%

extensions/sql-database-projects/src/dialogs/publishDatabaseDialog.ts
2
52.53%

Totals

Change from base Build<PHONE_NUMBER>:
-0.008%

Covered Lines:
28569

Relevant Lines:
62932

💛  - Coveralls


PWA-Chrome issue

Current Behavior
Hello
This issue is related to #817 it seems that the fix applied in #881 is not sufficient, at least for Android.
Just updated one of the instances I have to v1.11.1 to check if this was fixed or not.
According to my tests:

In Windows PC using Edge or Chrome there are issues, it show a white page upon opening the page, with the same error that was being generated before

Same thing in Linux (raspberryPi) using Chromium and Firefox
Same thing in Android using Chrome

In order for this error to show, is necessary to open the page in the browser (wait until the new PWA version is downloaded and the popup to reload appears), after this is necessary to close the browser window (all instances of chrome / edge / etc.., in windows is necessary to close the chrome icon on the notification tray and in android is necessary to force close the chrome browser), when trying to access again the site the page does not load until we force an incorrect address (like 'https://my.site.com/dashboar') at this point the login popup is shown and we can access the real address https://my.site.com/dashboard.
If we close the browser it is necessary to repeat the process.
The fix seems simple, according to my attempts is necessary to change the file ui/src/main.mjs the catch for the fetch('_setup') needs to change to:
    .catch((err) => {
        if (err instanceof TypeError) {
            if (err.message === 'Failed to fetch') {
                console.log('auth error:', err)
                console.log('redirecting to:', window.location.origin + '/dashboard')

                // window.location.replace(window.location.origin + '/dashboard') //Original, seems to have no issues with Edge and Chrome on Windows, doesn't work on Android (Not tested on Linux browser)
                // window.location.href = window.location.origin + window.location.pathname + window.location.search + (window.location.search ? '&' : '?') + 'reloadTime=' + Date.now().toString() + window.location.hash; // Also works on Edge + Chrome on windows, doesn't work on android

                // Reloading dashboard without using cache by apending a cache-busting string to fully reload page to allow redirecting to auth
                window.location.replace(window.location.origin + '/dashboard' + '?' + 'reloadTime=' + Date.now().toString() + Math.random()) // Seems to work on Edge and Chrome on Windows, Chromium and Firefox on Linux, and also on Chrome Android (and also as PWA App)
            } else {
                // handle general Type errors here
                console.error('An error occurred:', err)
            }
        } else {
            // handle general errors here
            console.error('An error occurred:', err)
            window.location.replace(window.location.origin + '/dashboard' + '?' + 'reloadTime=' + Date.now().toString() + Math.random()) // Seems to work on Edge and Chrome on Windows, Chromium and Firefox on Linux, and also on Chrome Android (and also as PWA App)
        }
    })

It seems the original fix was enclosed in a series of if statements that are not catching the correct error, since I just added the original fix  window.location.replace.... to the else of the first if
Expected Behavior
No response
Steps To Reproduce
No response
Environment

Dashboard version: 1.11.1
Node-RED version: 3.1.7
Node.js version: 20.11.0
npm version: 10.4.0
Platform/OS: Server (Ubuntu 22.04.3
Browser: windows (Edge, chrome), Linux (Chromim, Firefox), Android (Chrome)

Have you provided an initial effort estimate for this issue?
I am not a FlowFuse team member

@arturv2000 @cstns Seems we made error handling too specific… I was afraid this would happen if we tried to add conditions.
Can you show a console log of the error type so we can add it to error handling?

@cgjgh Hi, No idea if doing this in the correct way, compiled in 'dev' and was able to put a breakpoint on source code, the error message is the one shown..

Tried in ´npm run build´ and added an extra console.log just to be sure, and booth where printed to the console.

@arturv2000 For additional context, could you insert breakpoints into the code within the try block? This would help identify the specific line of code that gets executed when an error occurs.
@colinl I suspect you might be having the same issue and getting the above error as well.
@cstns I realize your previous concern of a reload loop occurring by not specifying the errors that would trigger a reload. However, if the errors are too diverse, specificity might not be practical.
Considering the inconvenience caused by the blank screens, which can be fixed with a full reload, it seems our primary objective should be to address this issue before focusing on preventing potential reload loops.
Also, the original, pre-PWA error handling, which console logged “auth error”, suggests errors were mostly occurring with authentication- (@joepavitt Can you weigh in on this?).
This would imply that a reload would be applicable and beneficial in these cases.

Yes, I am seeing issues two.  I have looked in a bit more detail at what is going on, with the dashboard installed as an App in Edge.  I have worked out how to revoke the Google token when using it with Cloudflare Zero Trust, so I can now trigger the problem at will.
The first thing I note is that if I have the dashboard open and then revoke the token then initially the dashboard carries on responding as normal.  If I attempt to refresh the page then it goes blank and in the console I see
 An error occurred:
SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
```

Adding the reload as suggested by @arturv2000 fixes it. I will try and track down where it is failing.

The exception is coming from
const setup = await response.json()
I can't work out how to log the full response text, my attempts keep generating an exception.

@cgjgh From what I can understand, the error is generated at this section:
	console.log(2)
        // get the setup JSON from the server
        const setup = await response.json()
        setup.basePath = basePath
	console.log(3)

At least it only prints up to console.log(2). Wasn't able to put breakpoints, as long I go to the developer tools and open the source the login box show up.
This was the best I Could do

I see what is happening.  When the token has expired and the code does a fetch from https://my.domain/dashboard/_setup it gets redirected to the cloudflare login page, which is
<!DOCTYPE html>
<html>
  <head>
    <title>Sign in ・ Cloudflare Access</title>
    <meta charset="utf-8" />
   ...

which raises an exception in await response.json() as it is not valid json.  I guess a similar thing is happening for @arturv2000 except that the text he is getting back starts with Unauthorized ... which similarly is not valid JSON.

@cstns can you take a look at this, this week please, whilst I'm away?

Does it fetch those modules every time I switch to the page?

To answer my own question, the answer is no, it fetches them the first time a page that needs them is opened, which makes sense.

From what I can tell, the app is trying to boot up with data it receives after being redirected (due to various reasons) which in most cases are not valid json responses.
I feel like we're just treating symptoms and not the root cause.
My thought on this matter is, do we need to follow through with the ws connection and Vue app mount if the response we receive from the _setup call is not from our Node Red instance (assuming we got redirected to external auth providers) or we could safely force a redirect to window.location.origin/dashboard?... from the get go in an early return?
Inputs are more than welcomed, I'll try to sort this out this week

@cstns if you want to post suggested code to try I will happily give it a go.

I created https://github.com/FlowFuse/node-red-dashboard/pull/944.
I'm not completely sure if stopping the _setup process is enough, it may require a forcePageReload as well. I left a comment with todo to try both scenarios.

@cstns Don't know if supposed to answer here, or in the PR.
With the changes in the PR, the problem continues:

It enters in the same "if" has indicated before. I added a console.log to the
.then(async (response) => {
        if (...

And it does not enter there.

@arturv2000 Seems like you're using NodeRed auth which will not redirect and therefore not meet the conditions below and execute return or force reload...
 if (
       response.url &&
       typeof response.url === 'string' &&
       !response.url.includes( new URL(window.location).origin)) {

       // todo not sure if we should force redirect or just stop the setup process entirely
       // forcePageReload('origins do not match')

       return;
   }

Perhaps add a 401 status to conditions?
else if (response.status === 401) {
       console.log('Unauthorized, reloading dashboard')

       // todo not sure if we should force redirect or just stop the setup process entirely
       // forcePageReload('origins do not match')

       return;
   }

@cstns

I'm not completely sure if stopping the _setup process is enough, it may require a forcePageReload as well. I left a comment with todo to try both scenarios.

Pretty sure you need to force reload otherwise it will react in same way as if not handling in catch.
Would Response.redirected be helpful here in detecting if not from origin URL?
// Check if the response was redirected
if (response.redirected) {
    console.log('Response was redirected to auth')

    // handle reload
    window.location.replace(window.location.origin + '/dashboard' + '?' + 'reloadTime=' + Date.now().toString() + Math.random())
    return
} else {
    console.log('Response came from NodeRed')
}

My assumption was completely wrong. Based on your previous print screen I managed to figure out what's happening.
This fetch API will be the end of me. Apparently a 404/401/403 http response code is not considered a failed request (which I was wrongly expecting it to be). More on this here.
I made some changes so the redirect is triggered on 401 HTTP responses. Does anyone think we should force a refresh for other HTTP response codes as well? (ex 403)

@cstns Seems like your latest changes (commit b384d1d) are working. At least in Linux Chrome and Android Chrome I am not being able to reproduce the issue. Not able to test at the moment in Windows Edge.
It requests the login information and loads the page correctly.

That's great news! I think we may got to the bottom of it!
We could leave the force redirect enabled only for 401 HTTP codes for the time being and update it if needed for other situations if they arise.
I'll make some final touch-ups to the PR and submit it for review, I think we'll be able to merge it by EOD tomorrow if not surely this week. Release wise we'll have to wait for @joepavitt to return.
Thank you all!

Would wait for feedback from colinl since he has a different setup than mine regarding authentication.

Yes, good point.

Does anyone think we should force a refresh for other HTTP response codes as well? (ex 403)

Is still open for debate

Regarding the error codes, don't have enough knowledge to give a reasoned opinion, according to https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403 reauthentication should do no difference in that scenario.
What I would suggest, to facilitate future debugging for similar errors, would be to log the error code, something like this:
if (!response.ok && response.status === 401) {
    forcePageReload('origins do not match')
    return
} else if (!response.ok && response.status >= 300) {
    console.log('Auth Error:', response.status, response.statusText)
}

Not sure if error code in the 300...399 range matter for this case.

I'm quite certain #944 will be insufficient to handle OAuth setups like I believe @colinl has. I believe OAuth does not return a 401 but automatically redirects to auth page which cannot be parsed as JSON. This is where the previous origin check methods would become applicable.

What I would suggest, to facilitate future debugging for similar errors, would be to log the error code...

I agree, we could improve the error log on this one! I see no reason why we shouldn't return the entire response in case of !response.ok

I'm quite certain https://github.com/FlowFuse/node-red-dashboard/pull/944 will be insufficient to handle OAuth setups like I believe @colinl has. I believe OAuth does not return a 401 but automatically redirects to auth page which cannot be parsed as JSON. This is where the previous origin check method would become applicable.

We could rely on the response.redirected key, but the implementation might differ depending on the auth service being used.
I marked the PR as a draft until we get this sorted out and I'll add a temp console.log so that @colinl can give us some feedback.

@cstns I am not sure now where to get the code to test.

I created https://github.com/FlowFuse/node-red-dashboard/pull/944. You can pull the 937-prevent-setup-on-origin-missmatch branch and do a build locally

Still failing with invalid json error.  The console is showing a redirect to google login page as before.
I will PM the console log details if that is ok as I don't want to promulgate my domain details all over the internet.

I will PM the console log details

Or at least I would, but I can't work out how to do that, here it is with domain hidden.
{origin: URL, response: Response}origin: URLhash: ""host: "nodered.mydomain.org.uk"hostname: "nodered.mydomain.org.uk"href: "https://nodered.mydomain.org.uk/dashboard/"origin: "https://nodered.mydomain.org.uk"password: ""pathname: "/dashboard/"port: ""protocol: "https:"search: ""searchParams: URLSearchParams {size: 0}username: ""[[Prototype]]: URLresponse: Responsebody: (...)bodyUsed: trueheaders: Headers {}[[Prototype]]: Headersok: trueredirected: truestatus: 200statusText: ""type: "cors"url: "https://mydomain.cloudflareaccess.com/cdn-cgi/access/login/nodered.mydomain.org.uk?kid=9df892976242106878f0a65fd2c4543695b45472395325aba3f8277a33c5e44c&redirect_url=%2Fdashboard%2F_setup&meta=eyJraWQiOiIyZmE3OTM1NWY2YzdlYjRmNTdhYTBmNGQxOTZkZWMyY2I4MjE5ZmRkYzI0YzFjMTRiNTg0YTNlZjA4ZjkxZDQwIiwiYWxnIjoiUlMyNTYiLCJ0eXAiOiJKV1QifQ.eyJzZXJ2aWNlX3Rva2VuX3N0YXR1cyI6ZmFsc2UsImlhdCI6MTcxNzQ5MTM1Niwic2VydmljZV90b2tlbl9pZCI6IiIsImF1ZCI6IjlkZjg5Mjk3NjI0MjEwNjg3OGYwYTY1ZmQyYzQ1NDM2OTViNDU0NzIzOTUzMjVhYmEzZjgyNzdhMzNjNWU0NGMiLCJob3N0bmFtZSI6Im5vZGVyZWQuY2xhbmxhdy5vcmcudWsiLCJhcHBfc2Vzc2lvbl9oYXNoIjoiMTBhN2YyYTMzN2VjN2M0OGViNDdjODg5ZTc1YjZmNDBiZjExMmJlODEzMzBkYmM0NDQ3NTJiMWVlNGQxZjIzOSIsIm5iZiI6MTcxNzQ5MTM1NiwiaXNfd2FycCI6ZmFsc2UsImlzX2dhdGV3YXkiOmZhbHNlLCJ0eXBlIjoibWV0YSIsInJlZGlyZWN0X3VybCI6IlwvZGFzaGJvYXJkXC9fc2V0dXAiLCJtdGxzX2F1dGgiOnsiY2VydF9pc3N1ZXJfc2tpIjoiIiwiY2VydF9wcmVzZW50ZWQiOmZhbHNlLCJjZXJ0X3NlcmlhbCI6IiIsImNlcnRfaXNzdWVyX2RuIjoiIiwiYXV0aF9zdGF0dXMiOiJOT05FIn0sImF1dGhfc3RhdHVzIjoiTk9ORSJ9.Bsv-hq-BVSUWLw7FwsVeRsirQQLJSKVchrBpHINDXQo0NUkNw3ATeaysG8XOD7GxTAaHtczYcQzWRvyxqCJYloCRsLAW45KjItBUB4oZ84fPPrIxTbA8Cf9SUUhw1lSICB3iLIabI_I1AlG-fcDrJCJb4p2B40ewWWWz4pjWASPFXxQT3m4EhVqbrDPzWjZYuqhKf4exgHCbKPu56If0qVYKNhk6rvsUukcUZt6a6HXEE5o2W2DW-A1ZMjhi5lTuMzDi8HApTBBFIK9xXxL_plp-k-evhXOueTwJpk-QPFIkszuO03FENXcfJsKVACiWita9sD18qTNnogPv0vfdEw"[[Prototype]]: Response[[Prototype]]: Object

index-B6B5ipL-.js:239  An error occurred: SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON
(anonymous) @ index-B6B5ipL-.js:239
Promise.catch (async)
(anonymous) @ index-B6B5ipL-.js:239

There's not much there because the response is truncated
If you can confirm that the origin.origin and response.url are different, the values of response.redirected, response.status and response.statusText would be enough to go on.
The question that would need to be sorted is if we should forcePageReload to the dashboard or the oauth provider page where the redirect was made. I hope we'll get an idea based on the response.status code

I assume response.ok was true, otherwise it should have logged Failed to fetch setup data: + response

The origin is the dashboard url and response.url is the google auth page. redirected is true.
status is 200, statusText is ""
By replacing
const setup = await response.json()
with
        const responseText = await response.text()
        console.log(`responseText: ${responseText}`)
        const setup = JSON.parse(responseText)

I can see that it has successfully retrieved the google auth page.

Replacing the response.json() would only treat the symptom but not the cause.
I added a new case which will currently force a full page redirect to the redirected origin when host and response origins mismatch:
case host.origin !== new URL(response.url).origin:
            console.log('Following redirect:', response.url)
            window.location.replace(response.url)
            // forcePageReload('Redirected to different origin')
            return

Please give this setup a go, I think the full page redirect to the redirected origin and preventing any further app setup steps it will resolve the problem gracefully. If the redirect to the response.url is not the way to go we can leave the default forcePageReload to redirect to the dashboard.

Replacing the response.json() would only treat the symptom but not the cause.

That was just so that I could log the text.  The JSON.parse() still generated the exception as expected.
It looks like you may have cracked it  with the latest mod.  Looking good so far  :)

Happy to hear! I'll mark the PR as ready to review!

It might be a PWA caching issue. Were you prompted in the dashboard at any time after updating (any) nodes to reload?
https://github.com/FlowFuse/node-red-dashboard/pull/920 might address this. Or we might treat 3rd party nodes slightly different.
Please open another issue for it and we can take a closer look.

I wasn't prompted, but when I went to look at it a few minutes after updating it had automatically picked up the new flows. I will open an issue after doing a few more experiments to gain information.

One aspect of the current behaviour that is not ideal is that if I have the dashboard open and the token expires then it keeps running for while, which is ok, but at some time later it pops up the Connection Lost notification and just sits there forever, presumably trying to reconnect and failing.  It doesn't take me to the login screen at that point.  To get going again I have to force a refresh, which then brings up the login screen.

It might be a PWA caching issue. Were you prompted in the dashboard at any time after updating (any) nodes to reload? #920 might address this. Or we might treat 3rd party nodes slightly different.
Please open another issue for it and we can take a closer look.

PWA only caches files that exist in the dist folder at Vite build time, 3rd party nodes I believe are not located there.

PWA only caches files that exist in the dist folder at Vite build time, 3rd party nodes I believe are not located there.
Yes, that was a bad assumption.

@colinl does the same happen with a more generic catch all that would forcibly redirect to the dashboard? Please give it a test by leaving only the forcePageReload method in the setup catch block without any conditionals.
I assume this behavior is caused by something else because the _setup call is only called once when the application initially boots. Another thing that points in this direction would be the fact that you haven't included any text that would by caught by the setup catch block ('An error occurred:' or 'auth error:')

Yes, it is odd, I don't know what is triggering the get that generates the CORS error.  I have run it again, on Brave and this time the CORS error occurred before the connect failures.  I wonder whether there is another, asynchronous, GET going on, completely unrelated to this code.

redirected from 'https://nodered.mydomain.org.uk/dashboard/sw.js'

Does that tell you anything?  That appears to be ui/src/sw.js

It is the hourly PWA check for updates in ui/src/components/PWABadge.vue.
 methods: {
        registerPeriodicSync (swUrl, r) {
            if (this.period <= 0) return

            setInterval(async () => {
                if ('onLine' in navigator && !navigator.onLine) { return }

                const resp = await fetch(swUrl, {   <------ this line is generating the CORS error
                    cache: 'no-store',
                    headers: {
                        cache: 'no-store',
                        'cache-control': 'no-cache'
                    }
                })

                if (resp?.status === 200) { await r.update() }
            }, this.period)
        },

As such I suspect it can probably be ignored.
The real problem is how to recover from the fact that socket cannot reconnect.  I wonder whether it is possible to distinguish this situation from the network or server down.

That was my initial thought as well but I agree with @cgjgh, although the error might suggest that it's triggered by the worker, it's highly unlikely to be caused by it because it's just running the mounted vue app.
I would turn my attention to the ws connection and socket.io in particular.
As far as I can tell we don't have that many listeners for socket.io, and these errors you're experiencing would not get caught by the _setup call catch block. We could set up listeners for reconnect_attempt, reconnect_error, reconnect_failed, connect_timeout or the more generic error and see which one gets triggered by what you're experiencing.
This would be out of scope for the task at hand, we should continue in another task for traceability.

I have looked at the err object in the connect error fn
 socket.on('connect_error', (err) => {
and in the case we have here it contains {"code": "parser error} which may well be diagnostic.  I will open a new issue for this.  If someone can suggest what the best way to recover is (reloading possibly, in order to get to the logon page) then I will have a go at generating a PR. It is about time I got myself added to the list of contributors.

The implementation would depend on what data the error we receive contains. If there's nothing relevant like in the case of fetch (response.ok, response.redirected or response.url) that we could use to deduce what went wrong, I'd say that using the existing forcePageReload would me more than enough.
I'll be more than happy to assist along the way!

@cstns, looking at the code in forcePageReload() it has the dashboard component of the url hard coded.  Is that ideal?  I know that at the moment it is not configurable, but is not the name available from the ui-base so that when it does become variable this code will not have to change?

It's not ideal in any way, I agree. When the time will come to implement custom paths for dashboards we'll need to address this.
As we stand, we don't have a way of knowing what path the dashboard will be on so we just went with hardcoding it because we know it is static. One way of future proofing it would be to add it as a parameter in the forcePageReload() because I assume we'll receive it within the _setup response

I was forgetting that, of course, the client cannot access the ui-base.

@colinl Hadn't tried since one of the last commits in the PR.
Actually I thought that the issue was already closed with the merge of the PR #944 .
Synced the dashboard code folder with the main branch, build it and install in the test instance. Everything seems OK.


[Website] [MINOR] Link install guide around download button

What is this PR for?
This PR adds link to installation guide doc around download button
Screenshots (if appropriate)
before

after

What type of PR is it?
Improvement
Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

LGTM

Thanks @khalidhuseynov for taking a look.
Merge and deploy if no further comment.


Corrupted download.

This URL:
https://www.reddit.com/r/EarthPorn/comments/io729u/trying_to_capture_the_whole_beauty_of_the_bernina/
results in a 0 byte jpg downloading. This was reproducible after deleting and trying again.

I tried to reproduce this by adding the following to run:
func run() error {

	downloadFile("https://i.redd.it/u1vf0mx55ql51.jpg", "tmp.jpg", true)
	return nil

Guess I'll close this now...


Firebase Account Indexer

Introduce the Firebase Indexer as a Fallback for the Kitwallet (very unstable) for account retrieval using public keys.

I manage to get the full end to end manual testing test working using https://github.com/near/near-discovery/pull/929
Chrome:
:heavy_check_mark: Create account
:heavy_check_mark: Sign in on above account
Firefox (Non-webauthN):
:heavy_check_mark:  Check account
:x: Sign in with an account created on Chrome
:x: Sign in with an account created on Firefox (itself)
(I think non-webauthN browser signin is broken, it hangs on Signing transaction text  view and stay there)
Safari:
:heavy_check_mark: Sign in with an account created on Chrome
:heavy_check_mark: Redirected to device page and go through full flow (Also confirmed that it does delete public key records well)
:x: Sign out and sign back in with same account (failed at kitwallet failure)
Result:
After conducting the full manual test, I have two things that need to point out for next step forward.

In this PR, we need to get non-webauthn flow fixed. Also ideally we need to replace every place in this repo that reference kit wallet for public key -> account id call.
(Main problem) unfortunately making this PR/this repo fully replacing kitwallet won't fix the all problem. Because, the package @near-js/biometric-ed25519``getKeys method also uses kit wallet. But then, the point is that this package is design to be used with community (not tied to Pagoda internal usage) who doesn't support/use firebase. TDLR: if we really want to use firebase, we need to implement logic that try firebase if exist, or fall back to queryAPI(or kitwallet for now). CC @esaminu @DavidM-D

@hcho112  I understand your concerns. But as I discussed with @esaminu, this PR isn't replacing KitWallet. We are introducing Firebase as a fallback in case the KitWallet can't return the accountId (due to recent hight instability).
As you can see on this file, we first check if the account is available on KitWallet, if not, we check for Firebase.
Firebase will only index accounts created after this PR, adding redundancy. Old accounts should be available by the KitWallet.
The idea isn't index accounts created before this PR on Firebase.

@Pessina , file <- this implementation is exactly that I was talking about. But it looks like reference change isn't part of this PR or exist in main branch. I would suggest to above change to be merged to main soon or include in this PR together? (If so, this PR would be perfect!)
Maybe we shall discuss on the call together first

@hcho112 I didn't manage to reproduce the bugs you metioned, can you please re-test on your side and share a video or step-by-step how to reproduce the bugs?
Setup:
near-discovery: main branch
fast-auth-signer: 122-firebase-account-indexer branch
There are my testing videos
1 - Safari (Sign out and sign back in with same account (failed at kitwallet failure))
https://drive.google.com/file/d/1gdIcAZxz1mh6Py6QEa-XoYrStgd-YRkc/view?usp=sharing
2 - Firefox(Sign in with an account created on Firefox (itself))
https://drive.google.com/file/d/1BwWY9NVei22fvyQWkMj3eCwL9QlUU9bB/view?usp=sharing
3 - Chrome + Firefox (Sign in with an account created on Chrome)
https://drive.google.com/file/d/1mc64K23vQgFhZ2VKPCVl4ft9DcnWcr2F/view?usp=sharing
Please let me know if you don't have access to the recordings

Thanks for the update and making records on each steps @Pessina
First of all, I don't if it is from your latest change, but when I test again on FF, it worked finally. So I'm not against this PR going forward.
Just feedback to your changes:

Interesting thing is that, when I tested it, I didn't even had to type the url manually, it actually redirected me straight back to where it was.
It works as expected
I can also see that it works. (Also unlike your video, it redirects within same browser tab so I didn't had to manually type anything)

So at this point, I would say this is LGTM on my side. Lets follow up with @esaminu and ship it. Good work @Pessina


Update bdk-jvm dependency to version 0.5.1

The primary changes in this version are:

The databaseConfig does not need a dummy parameter:val databaseConfig = DatabaseConfig.Memory

The wallet.broadcast method returns a txid instead of a full tx (and won't give any error if successful)val txid = wallet.broadcast(psbt)
println("https://mempool.space/testnet/tx/$txid")

@abdulla-khalid you or someone else can do this update to fix broadcast error we discussed on discord.

@notmandatory updated to the latest bdk version but...
private val db = DatabaseConfig.Memory
Is giving me the error: Classifier 'Memory' does not have a companion object, and thus must be initialized here and a
Also a NoSuchFieldError during runtime. If I use the old syntax than it wont compile for because of another error.


Perhaps it would be nice to have WYSIWYG possibility

I'd like to see if it would be nice to edit in the localhost and then have it push back to the readme file once done.
Not sure if it is possible and not sure if it would be an improvement, but just thought to throw it out there.

Yeah, this one does fall out of scope for this project, since it would require tightly integrating the rendering engine with an editor.
Thanks for the thought though!


Skip Tap callbacks if outside axis bounds

Unlike the PointerXY stream where we clip the pointer location if it goes outside the bounds to ensure that fast mouse movements are captured the tap callback should simply be skipped if the tap occurs outside the plot bounds.

[x] Closes https://github.com/ioam/holoviews/issues/3135

Another uncontroversial fix which will not affect tests so I'm going ahead and merging.


adding kitty printer progress

Adding the kitty printer progress here along with notes:
added a refresh() function to pycamera that only calls esp_camera_fb_return(frame) so that the gameboy filter can refresh on the display.
the gameboy filter is pulled from the CircuitPython module: https://github.com/adafruit/circuitpython/blob/main/shared-module/bitmaptools/init.c#L774C1-L862C2
i tried two different methods for printing to the cat printer: drawBitmap and drawPixel. drawBitmap is commented out, but wanted to leave for prosperity
the behavior i was experiencing was that 9/10 times the printer would connect properly, it would receive the buffer to print, would start printing but would stop before completing the task. the memento would think it was still printing and essentially be frozen, requiring a reset. the percentage that printed was different every time. 1/10 times the print would finish properly and the memento would go back to previewing with the filter. if a 2nd print was attempted though, the partial print behavior would occur.
my theory is that the pictures are overwhelming the printer buffer or that a command is missing to clear memory on the printer. i say this because if you don't call cat.fillScreen(1) to fill the buffer with white, you will get a ghost image of what you previously sent to the buffer. also if i send an empty white buffer it "prints" without the partial print issues.
i tried experimenting with the initial buffer size for the printer but that did not change things. based on what i've read about the printer it expects the [48 * 400] sized buffer so i've left that here.
i did try the Thermal Printer library but it has errors with IDF5. compiled with release BSP and it sees the printer but does not connect.

cat printer code will be added to learn guide repo. adding simple refresh function that only calls esp_camera_fb_return(frame) so that the gameboy filter can refresh on the display.


how to disable gnome-flashback's root window (just use awesome's backgrounds and no desktop icons)?

Works nicely! One question:
I want to disable the gnome root window, and use awesome's native backgrounds etc. I don't need gone's desktop icons, so best would be if I could start a complete session without gnome-flashback being visible at all.
Any idea how to do this?

I think this is possible, I've worked a few months ago on a version that drops the gnome-flashback dependency and uses gnome directly. Unfortunately, this was done for a VM with a different goal which didn't end up making it. So, it never crossed my mind to back this new version up... which I regret now because it was a much nicer and simpler implementation that dropped the LOC almost in half.
In case my memory serve me right in this version the main script is the awesome-gnome script. Maybe it's already enough if you don't execute gnome-flashback by removing it from the procs array. It used to be in there to provide something that GNOME detects as a valid session but these days with Budgie and other GNOME-based desktops I don't think it's strictly needed anymore.

Thanks (and sorry for the late reply). I remember (I think) that removing gnome-flashback from gnome-session was the first thing I did, but I kind of like the possibilities that the gnome session gives me in terms of providing the env (I guess through the gdbus session) in terms of using gnome-settings and gnome-tweaks to set themes and start agents and such. But that actually also doesn't work perfectly, so I might reconsider...
Another (very annoying) thing I experience is that (I think) when the screensaver timeout has arrived, screen-blanking doesn't work, but the whole layout is messed up (all windows are thrown on one workspace).

Yes, I remember the part that made the new version so much different from this one is setting up a gnome environment from scratch. That being said, I would have a look at the budgie project which does exactly that to some extent. That's where I got the idea for my solution from.
The good thing is every part that would be needed is doable from a single bash script, if done in a certain way even window manager agnostic. Another source of inspiration or solutions would be other DE that base off GNOME these days like the new Ubuntu Shell, or the Pop!OS Shell.

Thanks, I'll probably try that then, since even a full gnome-shell session I have on my laptop is quite lacking in many things, such as tablet-rotate (not working, it was though with kde), automatic external display scaling on plugin, ... So it appears to be better not to be dependent on standard DE sessions anyway.
I guess we can close this as an "issue", since the solution will be another setup altogether and not specific to this ticket. Thanks for the pointers!


vscode-test bails at first configuration with test failures even without --bail

Hello,
I'm using vscode-test-cli version 0.0.9. My .vscode-test.mjs file returns an array of test configurations. I'm observing that vscode-test stops after the first configuration that exhibits test failures, even though I didn't use the --bail CLI argument.
After some investigation I'm finding that it's a combination of behaviors in test-cli and test-electron.
In test-electron, I see here that a promise is rejected when the underlying process has an exit code != 0.
In test-cli, I see here that we consult the bail after awaiting the above promise. Since the promise is rejected, we don't get a chance to continue onto the next test configurations.
Is my analysis correct? And if so, is there a workaround I could use to unblock my setup pending a fix upstream?
Also more generally what's the status of vscode-test ? It seems to be the recommended test infrastructure in the official extension development documentation but the README in this repo says that it's experimental. Should I continue to try to use it in production or wait until it's more stable?
Thanks!

Ok thanks for confirming. On my end I thought of a workaround: I can iterate the configurations and launch vscode-test --label <> for each one to be sure that they all run.


Make HTTP client timeout configurable

Chargify's API has been taking more than 10 seconds to respond to some of my requests. This change makes the timeout user configurable.

@macinjosh Thanks for this pull request. Merging now and will have it tagged in master shortly.


doc(sample): improve sample w/ e.g on big docs

Add a code snippet that explains how to go above 2Mb

Won't do, we will enforce a 256 MB limit in #151


Tests are not passing

Hello,
TransactionApi last test is not passing.
it('should return false on success field from post send transaction', () => {
    //tslint:disable
    const transaction = {
      amount: 100000000,
      fee: 10000000,
      id: '5b9be5f9b1280d542e856e84758312780fe0061366592e579cbed8639511cac0',
      recipientId: 'DLteVA8j6B5DLpFp2Z3XSw1ENGXMjtFQsf',
      senderPublicKey: '026c75159ccf36ffc639fdfcba7c6e798f90b2767b54b8a99f2eeec534c92a32e9',
      signature: '304402203d971b4e50e27e7fec8fb6d42523b82a70a82af9b9488d8f4aa16cb7936162ea022077e072b21e78cf24b7a9b8b653042dcb218b226f1b18e9a7a8462bc49e48255b',
      timestamp: 9870360,
      type: 0,
      vendorField: 'Send transaction by ark-tsc'
    };

    return api.post(transaction).forEach((response) => {
      expect(response).to.have.property('success', false);
    });
  });

It hangs in api.post forever never returning. I guess there's a bug in http service somewhere.

Peer http://<IP_ADDRESS>:4002 cause it, but now before run test is set a good peer.

ooh. Thanks.

on side note there should be some fail over for peer not being good, with some function trying to keep a list of good peers (making some statistics about peers height)


:gift_heart: Handover of magetasks to Knative project

Which issue(s) this PR fixes:
Fixes knative-extensions/kn-plugin-event#338
Changes

:gift_heart: Handover of magetasks to Knative project

/kind enhancement

/test all

/hold
To be tested against kn-plugin-event

/cc @dsimansk
It work with kn-event, as seen in knative-extensions/kn-plugin-event#345
/unhold

/approve
/lgtm
Adding hold for Productivity WG, @upodroid to check. Or it that's already discussed, @cardil feel free to unhold.
/hold


Syndicate Rebalancing + Gun rebalancing

About the PR
Major price changes on underused items and some general rebalance for synd gear and guns
Why / Balance
only the gear changes are mentioned here. Price changes can be discussed if there are any changes/reasons wanted.
Cane Blade Reworked - The Cane blade's now 40 TC, but a sidegrade to e-sword. Less than an e-sword DPS at 24 DPS, but 1.5 hit speed and now ignites as a reference to the fact SS13 curators are related to wizards in some ways. Current Cane Blade was well pretty... bad and overpriced.
Synd EVA Reworked - Synd EVA now is closer to the SS13 Syndicate spacesuit- AKA a low defense EVA suit. also made it have 0 slow. Cost changed to 20 TC. - Why? Because you can get the same thing for 0 TC without the valid when it has the same stats as the normal EVA, and having a lighter EVA yet still armored option rounds things out.  25% Combat types means the suit gives 1-2 hits of extra survivability. 50% Rads to add an extra reason to buy one, aka the goose is loose :3
Fake insuls buff - By Buff I mean insta-crit. The effort required to 1: Shock someone w/ them 2: have them be alone or no non-antags are w/ them and 3: Hide the body before they can be found is insane. Also very target dependant and may need thief gloves, so 10/30 TC for a niche situational kill needs to well... actually work!
China Lake Nerf - 1.0 FR > 0.6 FR. it's a grenade launcher that's an aoe insta death. 0.6 FR makes shots need a lot more thought. The skill weapon needs actual skill not just "Click pixel this far away, girl!!!"
Hristov Changes - Hristovs now deal  deal 60 AP Damage and 90 Structural. They also have 6 Ammo Capacity. Price has been increased from 60 TC to 80 TC. Boxes now have 12 .60 and are 40 TC. FR is actually 0.8 instead of 0.75. This makes them an actual weapon.
Revolver Changes - All normal Revolvers except mateba have recieved a 0.5 FR increase. AKA - inspector 2.0, Deckard/Python 2.5.
.35 Pistol Buff - 10 > 12 Capacity. Pistols have more ammo than you'd think, and this makes them somewhat closer to 13 pistol balance, but not the exact 2 kills for every normal mag the synd makarov if every shot landed on 13.
Media

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

Changelog
:cl:

tweak: Clearance Sale! A high amount of items that haven't sold well have been made cheaper by the syndicate. However, Suppliers have increased prices on certain items.
tweak: The Cane blade has been totally rebalanced, dealing more damage and igniting targets, but has been marked up in price to 40 TC.
tweak: The old Syndicate EVA Suit has been replaced by a new lightweight durathread model, with some moderate protection and anti-rad but costs 20 TC. Reviewers have stated that it's insanely comfy, but these have been bought, NT claims.
tweak: The China Lakes in supply  have started to deprecate and fire slower due to age. 1 FR > 0.6 FR.
tweak: The Syndicate has realised they were sending .40 Materiel instead of .60 Antimateriel. This has been rectified recently and the hristov improved. The correct ammo is very costly! 40 Damage > 60 Damage AP, Hristov 60 TC > 80 TC.
tweak: Revolvers across the galaxy have had their firerates magically increased after one girl decided "Hey, maybe we should invest more money into the revolver department!" 1.5 > 2.0 FR for Inspector, 2.0 > 2.5 FR for Deckard and Python.
tweak: .35 Auto Pistol Capacity 10 > 12
tweak: Slug Shells now deal 40 Damage making them a more desirable option!

 Best way to emulate the weight overshoot? increase the weight to where it would overshoot, 6.
Why did den not do this? We all know why.

Diff 6 usually ended up in objectives which were tantamount to murdering the entire station.
It is been capped for a reason.

Diff 6 usually ended up in objectives which were tantamount to murdering the entire station.
It is been capped for a reason.

Current Diff is 5, and den fixed the overflow that caused that. overflow actually caused synds to have 6 diff pretty regularly on 5. Basically, keeps the overflow fix but makes objs roll closer to how they used to.

There's an example. Also many cases of obj sets that can't be gotten anymore, like 2 steal objectives.

Steal objectives are more often than not kill objectives with extra steps due to average command staff behavior and how the game functions in general.

Steal objectives are more often than not kill objectives with extra steps due to average command staff behavior and how the game functions in general.

True, but what I'm trying to say is the game generates less than before and the bug that caused problems at 6 has been removed... and also caused less objectives. Can revert if the less objs is wanted, but I presumed otherwise.

Steal objectives are more often than not kill objectives with extra steps due to average command staff behavior and how the game functions in general.

True, but what I'm trying to say is the game generates less than before and the bug that caused problems at 6 has been removed... and also caused less objectives. Can revert if the less objs is wanted, but I presumed otherwise.

Needs maintainer or third party opinion on this.

 Best way to emulate the weight overshoot? increase the weight to where it would overshoot, 6.
Why did den not do this? We all know why.

i think this should be moved to a different PR, personally. especially because this PR has no mention of the change in its description. it almost feels misleading having that be snuck into this PR.

 Best way to emulate the weight overshoot? increase the weight to where it would overshoot, 6.
Why did den not do this? We all know why.

i think this should be moved to a different PR, personally. especially because this PR has no mention of the change in its description. it almost feels misleading having that be snuck into this PR.

Yeah, honestly discussion is needed and this PR's not the place for that. Also, this was an attempt at reverting the effect of the den change without reverting the bug fix. Personally though player selection might be the way to go, but again not the PR for that

Made an issue for that type of thing, otherwise I'm probably not gonna touch that within this PR or the next few really.


W18: Invalid character in group name

Hi There,
I'm getting an error when entering neovim, specifically
W18: Invalid character in group name
I'm using NVIM .7, and on WSL2 using a ubuntu 20.04 distro.
Would appreciate any help!

This should now be resolved.
Neovim 0.8 (and nvim-treesitter plugin) changed all the Treesitter highlight groups to start with @ instead of TS, which then caused a cascade of other issues.
Anyway, I have reverted back to VimScript for Neovim 0.7 (and prior users) whilst only using Lua highlighting for Neovim 0.8.


Update to breaking GitHub hooks changes

closes https://github.com/greenkeeperio/greenkeeper/issues/440

We also use
  github.authenticate({
    type: 'integration',
    token
  })

but I could not find a change for that to be type: 'app'
will this stay like that @gr2m ?


doc: lwm2m: Announces support for v.1.1

Tells that it's possible to enable v1.1 support by using an overlay
file.
Signed-off-by: Veijo Pesonen<EMAIL_ADDRESS>

@SeppoTakalo, @umapraseeda Please review.


Fix the code style

This enforces some of the style issues we discussed in our project meeting. The big things I implemented are:

Member variables moved from m_member_var to member_var_
Functions are now in camelCase
Pointer alignment is left, e.g. Widget& w instead of Widget &w
Fixing some weird alignment choices by adding spaces
Adding a reference to the C++ Core Guidlines in the docs

LGTM

I apologize in advance for the giant breaking PR. Hopefully we will do this one and then never worry about it again.

A side benefit of this is you can tell which member functions come from us vs. MFEM due to camelCase vs. PascalCase.

LGTM

Should we also put the classes and not just the serac types in the serac namespace?

LGTM

What does LGTM mean?

A side benefit of this is you can tell which member functions come from us vs. MFEM due to camelCase vs. PascalCase.

so Serac will be camelCase and MFEM is PascalCase?

Should we also put the classes and not just the serac types in the serac namespace?

What would be the bad thing about doing that?

Should we also put the classes and not just the serac types in the serac namespace?

yes we just hadn't gotten around to it yet.

LGTM

What does LGTM mean?

It is a sign off by an authorized user to run the tests on the CZ

Should we also put the classes and not just the serac types in the serac namespace?

What would be the bad thing about doing that?

Extra typing I suppose. I strongly support this, so I'm just probing if there was a technical reason we haven't yet. Sounds like there isn't!

A side benefit of this is you can tell which member functions come from us vs. MFEM due to camelCase vs. PascalCase.

so Serac will be camelCase and MFEM is PascalCase?

Exactly. So a call signature would look something like solid_solver.getDisplacement()->gf->ComputeL2Norm() where getDisplacement() is serac-owned and ComputeL2Norm() is MFEM-owned.

and @solberg2 LGTM is short for "Looks Good To Me"

LGTM

I added the namespace to all of the serac classes.

LGTM


Signed URL v2 returning error when using service account

Signed URL v2 returning error when using service account
Description
I am trying to generate a signed url using waffle with waffle_gcs. I configured my project according to the goth migration guide, and enabled the signed parameter in my config. The credentials are being set by using a JSON key, associated to a :service_account. However, when I call the url/1 function from my uploader I get the following error:
** (MatchError) no match of right hand side value: :error
    (waffle_gcs 0.2.0) lib/waffle/storage/google/url_v2.ex:82: Waffle.Storage.Google.UrlV2.build_signed_url/3
    (fliipa 0.1.0) lib/fliipa/uploaders/report_uploader.ex:6: Fliipa.Uploaders.ReportUploader.url/3
    iex:6: (file)

It seems that the client_email and private_key are not being set on the Goth.Config. I managed to make a workaround by explicitly setting the parameters in the Application module by using:
Goth.Config.set(:client_email, credentials["client_email"])
Goth.Config.set(:private_key, credentials["private_key"])

However, I don't know if this is an intended behavior or is a library failure.
Environment

Elixir 1.16.2 / OTP <IP_ADDRESS>
goth 1.4.3
waffle 1.1.8 / waffle_gcs 0.2.0

Since this is still open and Goth seems to be moving more towards maintaining token generation instead of storing credentials Deprications . Does it make more since to make waffle_gcs more flexible on this and add configs internally so changes with Goth don't break waffle_gcs ?
client_email = Application.fetch_env!(:waffle, :client_email)
private_key = Application.fetch_env!(:waffle, :private_key)

Sorry for missing this when it originally was submitted @jmalovera10, I'll take a look. It's been a bit since we've come back to this as we were reviewing a migration guide for v0.3
@dgross881 Along those lines, I have been thinking that as part of URL signing for v4 that we need to just have a general GCP signing implementation separate from Goth, as you can't really get away from needing a key if you're doing resource/uri signing, and not all Goth implementations will be configured with one.
I need to dig into the GCP v4 signing docs again and compare them to the AWS signing implementation. Theoretically, they're supposed to be compatible w/ AWS but I'd need to double check. It would be nice to be able to do something simple that works for AWS and GCP, where the only difference is the header names.


Speed Up GraphQL Caching

As a DAO user I would like to be change in DAO more instantly instead of waiting for caching to pick up so that I am clear whats happening

[ ] reserach
[ ] migrate of graphql telos
[ ] debug

I had this now, I published to staging and nothing happened. Looks like a bug on the frontend.
Arsenie says it can take between 5 - 60 minutes to show up
That's unacceptable, from a user's perspective, it just lost the proposal


Migrate the code here to typescript?

TODO: I want to move to typescript, so I need to find out how to do it.
In particular, replacing require() with import may provide completion support from denolsp for this extension via import-map.

close with #14


fix(datastore): ObserveQueryOperation SortedList internal inconsistency

Addresses #1627
Update SortedList.modelIds alongside SortedList.sortedModels when initial query succeeds.

[ ] Added new tests to cover change, if needed
[ ] Build succeeds with all target using Swift Package Manager
[ ] All unit tests pass
[ ] All integration tests pass
[ ] Documentation update for the change if required
[ ] PR title conforms to conventional commit style
[ ] If breaking change, documentation/changelog update with migration instructions

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Hi @heyltsjay, thanks for the PR- looks like we've addressed https://github.com/aws-amplify/amplify-ios/issues/1627 with another PR


Fix #6160 Updated Text binding for row and removed variable evaluation

Description

Table Row evaluation was showing an error in the debugger. Removed evaluation in row default value.

Fixes #6160
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Tested locally.

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

Test coverage results :test_tube:
:white_circle: Total coverage has not changed
No changes to code coverage between the base branch and the head branch

@vibhandikyash Working fine in deploy preview.


Implement editing primitives in the RPC client

To enable implementing delete, insert, overwrite, undo, and redo in the front-end user interface, we need to implement the same in the RPC client that is used by the UI.

A JavaScript client is generated at part of the Ωedit build process.  The generated RPC client is a class called EditorService in omega_edit_grpc_pb.js.  The client communicates using protocol buffer messages.  If we're good with the UI code populating and consuming these messages directly, then there is no need to have a client (adapter) on this side.  On the Ωedit side, we should build out test cases to prove that the capabilities work at that point in the stack, covering the RPC client, RPC server, and the backend library.   We need to make sure that all the services are available to implement the front-end editing primitives with the least amount of complexity.

The implementation of the RPC client has been done and tested in the Ωedit repository and will ship with the published Ωedit artifacts.


uploadcare.file.upload

Error: Invalid JSON from uploadcare.com     at IncomingMessage.<anonymous> (/Users/vk/GitHub/ecomp-be/node_modules/uploadcare/lib/main.js:39:31)     at emitNone (events.js:91:20)     at IncomingMessage.emit (events.js:186:7)     at endReadableNT (_stream_readable.js:974:12)     at _combinedTickCallback (internal/process/next_tick.js:74:11)     at process._tickCallback (internal/process/next_tick.js:98:9)

Figured that UC returns Uploading of these files types is not allowed on your current plan. instead of JSON.


Bye Weeks in Team assignment

The bye dates should be displayed in step 4 when assigning team numbers. It makes it easier to correctly accommodate bye requests

Added in pull request #32


LessThanOrEqual propagator exception

Hi,
I'm using the Python interface to generate some proof logs, but when trying to solve the model below, I get an assertion error thrown by a the leq propagator.
thread '<unnamed>' panicked at /home/ignace/git/Pumpkin/pumpkin-solver/src/propagators/arithmetic/linear_less_or_equal.rs:114:9:
propagator should only be triggered when lower bounds are tightened, old_bound=1, new_bound=1

from pumpkin_py import Model, constraints

model = Model()

iv = model.new_integer_variable(0,1)
a = model.new_boolean_variable(name="a")
b = model.new_boolean_variable(name="b")
c = model.new_boolean_variable(name="c")

model.add_constraint(constraints.Clause([a, b]))          # a \/ b
model.add_constraint(constraints.Clause([b.negate(),c]))  # b -> c
model.add_constraint(constraints.Clause([model.predicate_as_boolean(iv, Comparator.Equal, 1)])) # iv == 1
model.add_implication(constraints.Equals([iv], 0), c)  # c -> iv == 0

model.satisfy(proof="test")

I will look at this on Monday!


Connecting to a Livy Cluster

Hi,
I was trying to connect to an API endpoint with an X-AUTH-TOKEN. I received a requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://wellness.qubole.com/livy-spark-<cluster_id>/version. I configured my LIVY_URL and AUTH_TOKEN as the doc suggested and did this:
with LivySession.create(LIVY_URL, requests_session=requests_session) as session:
  session.run("1+1")

A configuration works for local Jupyter notebooks with another package called sparkmagic. I was wondering if you had any thoughts on what could be different causing the above exception to occur. The jupyter notebook/livy integration is documented here: https://github.com/jupyter-incubator/sparkmagic.
Thanks for your time!

User error. I had not updated the requests_session with the correct auth token. Apologies.

Glad you got sorted @dibsonmuad !


Multi Vehicle Simulation gives error

Hello I am getting the following error when I run roslaunch humantracking_controller multi_sitl_humantrack_circle.launch
RLException: while processing /home/pravardhan/px4/PX4-Autopilot/launch/single_vehicle_spawn_sdf.launch:
Invalid <param> tag: Cannot load command parameter [model_description]: no such command [['xmlstarlet', 'ed', '-d', '//plugin[@name="mavlink_interface"]/mavlink_tcp_port', '-s', '//plugin[@name="mavlink_interface"]', '-t', 'elem', '-n', 'mavlink_tcp_port', '-v', '4560', '/home/pravardhan/px4/PX4-Autopilot/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf']].

Param xml is <param command="$(arg cmd)" name="model_description"/>
The traceback for the exception was written to the log file

This is with the latest PX4-Autopilot

facing the same issue here ( testing on PX4 version - v1.13.3), @Jaeyoung-Lim what version of PX4 was this compatible with ?

I fixed this issue by adding the line
source /usr/share/gazebo-11/setup.bash
to ~/.bashrc

@pravardhanreddy try adding export GAZEBO_RESOURCE_PATH=/usr/share/gazebo-11.13.0 and source /usr/share/gazebo-11/setup.bash to ~/.bashrc.